Background task manager #332

Merged
lx merged 35 commits from background-task-manager into main 2022-07-08 11:30:32 +00:00
Showing only changes of commit 0200eae679 - Show all commits

View file

@ -494,11 +494,7 @@ impl BlockManager {
fn spawn_background_workers(self: Arc<Self>) { fn spawn_background_workers(self: Arc<Self>) {
// Launch a background workers for background resync loop processing // Launch a background workers for background resync loop processing
let background = self.system.background.clone(); let background = self.system.background.clone();
let worker = ResyncWorker { let worker = ResyncWorker::new(self.clone());
manager: self.clone(),
tranquilizer: Tranquilizer::new(30),
next_delay: Duration::from_secs(10),
};
tokio::spawn(async move { tokio::spawn(async move {
tokio::time::sleep(Duration::from_secs(10)).await; tokio::time::sleep(Duration::from_secs(10)).await;
background.spawn_worker(worker); background.spawn_worker(worker);
@ -744,6 +740,16 @@ struct ResyncWorker {
next_delay: Duration, next_delay: Duration,
} }
impl ResyncWorker {
fn new(manager: Arc<BlockManager>) -> Self {
Self {
manager,
tranquilizer: Tranquilizer::new(30),
next_delay: Duration::from_secs(10),
}
}
}
#[async_trait] #[async_trait]
impl Worker for ResyncWorker { impl Worker for ResyncWorker {
fn name(&self) -> String { fn name(&self) -> String {