Rust中job_scheduler每日定时任务无执行问题排查
解决Rust job_scheduler 1.2.1每日任务调度无响应的问题
job_scheduler = "1.2.1"依赖的cron表达式采用6字段格式,固定顺序为:秒 分 时 日 月 周,不支持第7个字段(年)。
- 你之前使用的
0 30 8 * * * *多了1个多余的星号(第7个字段),库无法解析该格式,直接导致任务不触发。 - 尝试的
"0 30 8 * * * "末尾带了空格,会被判定为无效格式,同样无法触发任务。
正确的每日早8:30执行的表达式应为无多余空格的6字段格式:
"0 30 8 * * *"
验证示例代码
use job_scheduler::JobScheduler; use std::time::Duration; fn main() { let mut scheduler = JobScheduler::new(); scheduler.add( job_scheduler::Job::new("0 30 8 * * *".parse().unwrap(), || { println!("每日8:30执行的任务触发了"); }) ); loop { scheduler.tick(); std::thread::sleep(Duration::from_secs(1)); } }
额外检查点
如果任务仍无响应,排查以下两点:
- 系统时间是否正确:job_scheduler默认使用本地时间,确认时区与预期一致;
- 调度器
tick()调用是否被阻塞:必须保证tick()被定时调用,否则任务无法触发。
内容的提问来源于stack exchange,提问作者user14603676
相关产品推荐
相关产品推荐

