Skip dir-refresh cycle when transfer is active
Avoids competing with write-back uploads or read-cache fill I/O by returning early if transfers > 0 or speed exceeds 10 KiB/s threshold. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
00df439bc5
commit
f948cd1a64
@ -372,6 +372,23 @@ fn spawn_dir_refresh(
|
||||
interval,
|
||||
}
|
||||
.spawn(generation, gen_arc2, sd, move || {
|
||||
// Skip this refresh cycle if the share is actively transferring.
|
||||
// Avoids competing with write-back uploads or read-cache fill I/O.
|
||||
{
|
||||
let s = status.read().unwrap();
|
||||
if let Some(ss) = s.shares.iter().find(|ss| ss.name == share_name) {
|
||||
if ss.transfers > 0 || ss.speed > SPEED_ACTIVE_THRESHOLD {
|
||||
tracing::info!(
|
||||
share = %share_name,
|
||||
transfers = ss.transfers,
|
||||
speed_bps = ss.speed as u64,
|
||||
"dir-refresh skipped: transfer active"
|
||||
);
|
||||
return Ok(());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Enumerate top-level subdirectories by reading the FUSE mount point.
|
||||
// The VFS root itself is not a valid vfs/refresh target in rclone.
|
||||
let dirs: Vec<String> = std::fs::read_dir(&mount_point)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user