问题域/PD-137

定时任务调度

Task Scheduling

支持定时、周期和 cron 表达式的任务调度系统,持久化存储任务状态

子问题

1.三种调度模式(at/every/cron)

2.任务持久化存储

3.异步回调执行

4.任务状态管理

5.LLM 自主创建和管理定时任务(Tool 暴露)

6.调度结果多通道投递(Telegram/WhatsApp等)

7.CronService 与 AgentLoop 循环依赖解耦

各项目的解法1 solutions

Signals

横向对比

维度FastCode
调度模式at/every/cron 三模式统一 CronSchedule,kind 字段判别
定时器实现asyncio.create_task 单定时器最近唤醒,零线程
持久化方式JSON 文件 camelCase 序列化,版本号预留迁移
Agent 集成on_job 回调注入 AgentLoop.process_direct(),走完整推理
LLM 自主调度CronTool 暴露 add/list/remove,LLM 通过 function calling 自主管理
任务生命周期at 模式执行后自动禁用或删除,every/cron 自动重算下次
消息投递payload.deliver + channel + to 支持多通道结果回推

最佳实践

1.使用 croniter 解析标准 cron 表达式保证兼容性

2.用回调注入解耦 CronService 和 AgentLoop 的循环依赖

3.单定时器最近唤醒模式替代轮询,降低 CPU 开销

4.at 模式任务执行后自动禁用而非删除,保留审计记录