Improve search for missing events

This commit is contained in:
Mike Dilger 2022-12-26 19:54:34 +13:00
parent a86776f5f2
commit ae33ab24f5

View File

@ -360,21 +360,35 @@ impl Overlord {
async fn get_missing_events(&mut self) -> Result<(), Error> { async fn get_missing_events(&mut self) -> Result<(), Error> {
let (desired_events_map, desired_events_vec) = Globals::get_desired_events().await?; let (desired_events_map, desired_events_vec) = Globals::get_desired_events().await?;
info!( let desired_count = GLOBALS.desired_events.lock().await.len();
"Seeking {} events",
desired_events_map.len() + desired_events_vec.len() if desired_count == 0 {
); return Ok(());
}
info!("Seeking {} events", desired_count);
let urls = self.urls_watching.clone();
for url in urls.iter() {
// Get all the ones slated for this relay
let mut ids = desired_events_map.get(url).cloned().unwrap_or_default();
for (url, mut ids) in desired_events_map {
// Add the orphans // Add the orphans
ids.extend(&desired_events_vec); ids.extend(&desired_events_vec);
if ids.is_empty() {
continue;
}
// If we don't have such a minion, start one // If we don't have such a minion, start one
if !self.urls_watching.contains(&url) { if !self.urls_watching.contains(url) {
// Start a minion // Start a minion
self.start_minion(url.0.clone()).await?; self.start_minion(url.0.clone()).await?;
} }
debug!("{}: Asking to fetch {} events", &url.0, ids.len());
// Tell it to get these events // Tell it to get these events
let _ = self.to_minions.send(BusMessage { let _ = self.to_minions.send(BusMessage {
target: url.0.clone(), target: url.0.clone(),