Skip to content

Commit

Permalink
Allow preprocessing and processing to be done in parallel
Browse files Browse the repository at this point in the history
  • Loading branch information
limemloh committed Oct 17, 2024
1 parent 46ca94a commit 32bb65e
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions backend-rust/src/indexer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -138,11 +138,14 @@ SELECT height FROM blocks ORDER BY height DESC LIMIT 1
let (sender, receiver) = tokio::sync::mpsc::channel(self.config.max_processing_batch);
let receiver = tokio_stream::wrappers::ReceiverStream::from(receiver)
.ready_chunks(self.config.max_processing_batch);
let traverse_future = traverse_config.traverse(self.block_pre_processor, sender);
let process_future = processor_config.process_event_stream(self.block_processor, receiver);
let traverse_future =
tokio::spawn(traverse_config.traverse(self.block_pre_processor, sender));
let process_future =
tokio::spawn(processor_config.process_event_stream(self.block_processor, receiver));
info!("Indexing from block height {}", self.start_height);
let (result, ()) = futures::join!(traverse_future, process_future);
Ok(result?)
let (traverse_result, process_result) = futures::join!(traverse_future, process_future);
process_result?;
Ok(traverse_result??)
}
}

Expand Down

0 comments on commit 32bb65e

Please sign in to comment.