1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
use std::time::Duration; use tokio::{spawn, task::JoinHandle, time::sleep}; pub fn set_timer<F>(func: F, period: Duration) -> JoinHandle<()> where F: Fn() + Send + Sync + 'static, { spawn(async move { loop { func(); sleep(period).await; } }) }