基于RQ实现类Celery Beat的cron定时任务调度方案咨询
基于RQ实现类Celery Beat的cron定时任务调度方案咨询
我最近在使用RQ做任务调度,但对官方的RQ Scheduler实在有点失望——它的架构设计感觉从根上就有问题,比实际需要复杂太多了,主要槽点有这些:
- 调度规则存储在Redis中:哪怕你删掉或者修改了代码里的调度逻辑,旧的规则还会留在Redis里,除非你手动去取消它们。
- 非声明式模型:你光是删掉代码里的
scheduler.cron(...)行根本没用,必须手动调用scheduler.cancel(job_id)才能移除对应的调度。 rqscheduler命令不执行你的代码:这个命令只会轮询Redis找该执行的任务,根本不会导入或运行你的Python代码来动态更新调度规则。- 没有内置的调和机制:你得自己处理调度任务的全生命周期——添加、更新、删除,这往往要写额外的脚本或者手动操作,太麻烦了。
我一直很喜欢Celery Beat的方式——直接在Python代码里按调度时间触发、入队任务,逻辑清晰又直观。但现在这个项目已经用了RQ,没法切换到Celery Beat,所以想问问大家:有没有简单的方法,能基于RQ实现类似Celery Beat、支持cron表达式的定时任务调度?
备注:内容来源于stack exchange,提问作者demux
相关产品推荐
相关产品推荐

