定时调度
Scheduled Execution
基于Cron表达式的工作流定时执行系统
子问题
1.Cron表达式解析与校验
2.时区处理
3.优先级队列
4.执行配额管理
5.多 Pod 分布式防重复触发
6.Redis 故障时的并发控制降级
7.执行快照存储与精确重试
8.超额调度自动禁用与用户通知
各项目的解法1 solutions
Signals
横向对比
| 维度 | Refly |
|---|---|
| 调度触发 | @Cron 每分钟扫描 + Redis 分布式锁 + 乐观锁防重复 |
| 队列架构 | BullMQ 单队列 + priority 字段 1-10 级优先级 |
| 并发控制 | Redis INCR 原子计数 + DB count 二次校验 + DelayedError 延迟重入 |
| 配额管理 | 订阅等级配额(Free:1/Paid:20)+ 超额自动禁用 + 邮件通知 |
| 执行状态 | 6 态生命周期 scheduled→pending→processing→running→success/failed |
| 容错机制 | OSS 快照重试 + Redis 故障 DB fallback + 错误分类 11 种 |
| 可观测性 | OTel Counter 指标 + 结构化错误分类 + 邮件通知 |
最佳实践
1.使用BullMQ延迟任务而非轮询实现定时
2.乐观锁 updateMany+WHERE 防多 Pod 重复触发
3.Redis INCR 快路径 + DB count 慢路径双层并发控制
4.6 态执行记录让前端可追踪每个调度阶段