【发布时间】:2018-08-08 07:25:29
【问题描述】:
我想构建一个应用程序,它会以定义的时间间隔调用定期任务 - 类似于 cron 替换,但没有生成进程。我会有很多任务,大约每分钟 10000 个。
- 我应该能够动态地将任务添加到调度程序中,例如使用 RPC
- 任务应存储在某个中心位置,例如数据库。
- 它应该是可扩展的,这意味着我可以运行类似工作器实例来处理计划任务 - 如果一个工作器已经处于高负载状态,另一个工作器开始处理计划任务。
我现在已经研究了这些选项:
Celery - 可以作为分布式系统工作,但它并不是真正的调度程序。您不能动态安排新作业。
APScheduler - 可以动态添加任务,可以将任务存储在数据库中但不是分布式的。
我可能可以运行单独的 apscheduler 实例,但是每个实例都有不同的作业存储(mysql 数据库或表)。我还需要手动确定应该提交哪个实例作业。故障转移和可扩展性也很困难。
这个问题有没有现成的python或非python解决方案?
【问题讨论】:
标签: python celery scheduled-tasks scheduler apscheduler