|
|
|
@ -156,24 +156,23 @@ async fn sync_origins(origin_store: &dyn origin::store::Store, canceller: Cancel |
|
|
|
|
let mut interval = tokio::time::interval(tokio::time::Duration::from_secs(20 * 60)); |
|
|
|
|
loop { |
|
|
|
|
tokio::select! { |
|
|
|
|
_ = interval.tick() => { |
|
|
|
|
|
|
|
|
|
match origin_store.all_descrs() { |
|
|
|
|
Ok(iter) => iter.into_iter(), |
|
|
|
|
Err(err) => { |
|
|
|
|
log::error!("Error fetching origin descriptors: {err}"); |
|
|
|
|
return; |
|
|
|
|
_ = interval.tick() => { |
|
|
|
|
match origin_store.all_descrs() { |
|
|
|
|
Ok(iter) => iter.into_iter(), |
|
|
|
|
Err(err) => { |
|
|
|
|
log::error!("Error fetching origin descriptors: {err}"); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.for_each(|descr| { |
|
|
|
|
if let Err(err) = origin_store.sync(descr.clone(), origin::store::Limits {}) { |
|
|
|
|
log::error!("Failed to sync store for {:?}: {err}", descr); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
_ = canceller.cancelled() => return, |
|
|
|
|
} |
|
|
|
|
.for_each(|descr| { |
|
|
|
|
if let Err(err) = origin_store.sync(descr.clone(), origin::store::Limits {}) { |
|
|
|
|
log::error!("Failed to sync store for {:?}: {err}", descr); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
_ = canceller.cancelled() => return, |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|