We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
On tokio-cron-scheduler there is example bellow
use tokio_cron_scheduler::{JobScheduler, JobToRun, Job}; #[tokio::main] async fn main() { let mut sched = JobScheduler::new().await; sched.add(Job::new("1/10 * * * * *", |uuid, l| { println!("I run every 10 seconds"); }).await.unwrap()); sched.add(Job::new_async("1/7 * * * * *", |uuid, mut l| Box::pin( async { println!("I run async every 7 seconds"); let next_tick = l.next_tick_for_job(uuid).await; match next_tick { Ok(Some(ts)) => info!("Next time for 7s is {:?}", ts), _ => warn!("Could not get next tick for 7s job"), } })).await.unwrap()); sched.add(Job::new("1/30 * * * * *", |uuid, l| { println!("I run every 30 seconds"); }).await.unwrap()); sched.add( Job::new_one_shot(Duration::from_secs(18), |_uuid, _l| { println!("{:?} I'm only run once", chrono::Utc::now()); }).unwrap() ).await; let mut jj = Job::new_repeated(Duration::from_secs(8), |_uuid, _l| { println!("{:?} I'm repeated every 8 seconds", chrono::Utc::now()); }).unwrap(); jj.on_start_notification_add(&sched, Box::new(|job_id, notification_id, type_of_notification| { Box::pin(async move { println!("Job {:?} was started, notification {:?} ran ({:?})", job_id, notification_id, type_of_notification); }) })).await; jj.on_stop_notification_add(&sched, Box::new(|job_id, notification_id, type_of_notification| { Box::pin(async move { println!("Job {:?} was completed, notification {:?} ran ({:?})", job_id, notification_id, type_of_notification); }) })).await; jj.on_removed_notification_add(&sched, Box::new(|job_id, notification_id, type_of_notification| { Box::pin(async move { println!("Job {:?} was removed, notification {:?} ran ({:?})", job_id, notification_id, type_of_notification); }) })).await; sched.add(jj).await; let five_s_job = Job::new("1/5 * * * * *", |_uuid, _l| { println!("{:?} I run every 5 seconds", chrono::Utc::now()); }) .unwrap(); sched.add(five_s_job).await; let four_s_job_async = Job::new_async("1/4 * * * * *", |_uuid, _l| Box::pin(async move { println!("{:?} I run async every 4 seconds", chrono::Utc::now()); })).unwrap(); sched.add(four_s_job_async).await; sched.add( Job::new("1/30 * * * * *", |_uuid, _l| { println!("{:?} I run every 30 seconds", chrono::Utc::now()); }) .unwrap(), ).await; sched.add( Job::new_one_shot(Duration::from_secs(18), |_uuid, _l| { println!("{:?} I'm only run once", chrono::Utc::now()); }).unwrap() ).await; sched.add( Job::new_one_shot_async(Duration::from_secs(16), |_uuid, _l| Box::pin( async move { println!("{:?} I'm only run once async", chrono::Utc::now()); })).unwrap() ).await; let jj = Job::new_repeated(Duration::from_secs(8), |_uuid, _l| { println!("{:?} I'm repeated every 8 seconds", chrono::Utc::now()); }).unwrap(); sched.add(jj).await; let jja = Job::new_repeated_async(Duration::from_secs(7), |_uuid, _l| Box::pin(async move { println!("{:?} I'm repeated async every 7 seconds", chrono::Utc::now()); })).unwrap(); sched.add(jja).await; #[cfg(feature = "signal")] sched.shutdown_on_ctrl_c(); sched.set_shutdown_handler(Box::new(|| { Box::pin(async move { println!("Shut down done"); }) })); sched.start().await; // Wait a while so that the jobs actually run tokio::time::sleep(core::time::Duration::from_secs(100)).await; }
This code doesn't compile do to JobScheduler::new().await;, and few more changes.
JobScheduler::new().await;
The text was updated successfully, but these errors were encountered:
No branches or pull requests
On tokio-cron-scheduler there is example bellow
This code doesn't compile do to
JobScheduler::new().await;
, and few more changes.The text was updated successfully, but these errors were encountered: