Rust中的後臺作業 - kerkour
對於經常性工作(又名 CRON 工作),我個人使用lightspeed_scheduler:
let job = Job::new("kernel", "dispatch_delete_old_data", Some(3), move || { let kernel_service_inner = kernel_service.clone(); Box::pin(async move { kernel_service_inner.dispatch_delete_old_data().await?; Ok(()) }) }); scheduler .add_job_with_scheduler( "* 0 4 * * *" .to_scheduler() .expect("scheduler.run: parsing kernel.delete_old_data cron expression"), job, ) .await; info!("scheduler.run: Starting scheduler."); scheduler.run().await?.await?; |
tokio-cron-scheduler是一個很好的(也許更簡單)的替代方案。
let mut scheduler = JobScheduler::new(); scheduler.add(Job::new("1/10 * * * * *", |uuid, l| { println!("I run every 10 seconds"); }).expect("defining 10 seeconds job")); scheduler.add(Job::new_async("1/7 * * * * *", |uuid, l| Box::pin( async { println!("I run async every 7 seconds"); })).expect("defining 7 seeconds job")); scheduler.start().await; |
一次性後臺作業
對於一次性的後臺工作,例如傳送事務性電子郵件,我們需要一個佇列。
我已經在如何使用 Rust 和 PostgreSQL 構建作業佇列中討論了這個主題,我仍然強烈推薦這個解決方案,因為它的操作簡單性和效能都很好!
// queue job let job = Message::SendSignInEmail { email: "your@email.com".to_string(), name: "Sylvain Kerkour".to_string(), code: "000-000".to_string(), }; let _ = queue.push(job, Some(Utc::now())).await?; |
相關文章
- 學習Rust的心智模型 - kerkourRust模型
- 作業控制(後臺執行)
- 什麼情況下不要用Rust語言? - kerkourRust
- 微信後臺開發作業講解
- 2022年選擇哪個Rust Web框架 - kerkourRustWeb框架
- [Abp 原始碼分析]十六、後臺作業與後臺工作者原始碼
- 使用 Rust 執行 Cron 作業Rust
- Rust編譯器比其他語言更能捕獲隱藏的錯誤 - kerkourRust編譯
- 用Linux作業系統的後臺任務(轉)Linux作業系統
- 活用Linux作業系統的後臺任務(轉)Linux作業系統
- Redox OS:基於Rust的作業系統Rust作業系統
- 與 Rust 勾心鬥角 · 作業Rust
- ST03N工作負載的後臺作業定義負載
- 類似Quartz的分散式Java後臺作業計劃程式:JobRunrquartz分散式Java
- 如何讓 ABAP 報表在後臺作業的模式下執行模式
- 分散式後臺作業排程器JobRunr介紹 - JAXenter分散式
- JAVA課後作業Java
- 面向企業中後臺產品的設計系統大合集
- Aero:用rust編寫的新現代作業系統Rust作業系統
- PHP熟手使用Rust作為後端開發語言PHPRust後端
- 如何在Spring中使用JobRunr實現後臺作業? - BaeldungSpring
- hpux中修改IP地址後進入不到作業系統的故障排除UX作業系統
- 課後作業1:字串加密字串加密
- Rust中後端的清潔Clea架構原始碼專案Rust後端架構原始碼
- Asynq 實現 Go 後臺作業非同步定時任務處理Go非同步
- Quartz.Net 作業排程後臺管理系統,基於ExtjsquartzJS
- 薄平臺:Stripe的金融作業系統作業系統
- 線上教育平臺開發中,作業功能中的圖片上傳是如何實現的
- 我對微軟在作業系統中安後門的方法的認識 (轉)微軟作業系統
- 美團後臺篇中的ReentrantLockReentrantLock
- oracle中容易忽略的後臺程式Oracle
- rust跨平臺Rust
- 第四期訓練營-rust for linux 作業RustLinux
- rust-raspberrypi-OS-tutorials:用Rust編寫樹莓派嵌入式作業系統的學習教程Rust樹莓派作業系統
- 作業0 部落格讀後感
- 鏈家分散式作業平臺分散式
- RAC例項中附加的後臺程式
- Blaze:基於Rust加速器用更少資源加速Spark作業RustSpark