Files
lighthouse/beacon_node/timer/src/lib.rs
ThreeHrSleep d60c24ef1c Integrate tracing (#6339)
Tracing Integration
- [reference](5bbf1859e9/projects/project-ideas.md (L297))


  - [x] replace slog & log with tracing throughout the codebase
- [x] implement custom crit log
- [x] make relevant changes in the formatter
- [x] replace sloggers
- [x] re-write SSE logging components

cc: @macladson @eserilev
2025-03-12 22:31:05 +00:00

34 lines
997 B
Rust

//! A timer service for the beacon node.
//!
//! This service allows task execution on the beacon node for various functionality.
use beacon_chain::{BeaconChain, BeaconChainTypes};
use slot_clock::SlotClock;
use std::sync::Arc;
use tokio::time::sleep;
use tracing::{info, warn};
/// Spawns a timer service which periodically executes tasks for the beacon chain
pub fn spawn_timer<T: BeaconChainTypes>(
executor: task_executor::TaskExecutor,
beacon_chain: Arc<BeaconChain<T>>,
) -> Result<(), &'static str> {
let timer_future = async move {
loop {
let Some(duration_to_next_slot) = beacon_chain.slot_clock.duration_to_next_slot()
else {
warn!("Unable to determine duration to next slot");
return;
};
sleep(duration_to_next_slot).await;
beacon_chain.per_slot_task().await;
}
};
executor.spawn(timer_future, "timer");
info!("Timer service started");
Ok(())
}