django-celery 如何实现动态添加周期任务

2019-05-08 11:22:04 +08:00
 TOUJOURSER
项目中现在有个需求是用户可以在前端页面添加定时或者周期任务,
后端的话目前采用 django-celery 来实现此类任务,
请问如何实现动态添加任务且不用重启 celery 相关进程?
3265 次点击
所在节点    Python
10 条回复
yongzhong
2019-05-08 11:33:30 +08:00
django-celery-beat
lol0
2019-05-08 11:35:15 +08:00
ditto
ifoolish
2019-05-08 11:36:15 +08:00
可以看看 django-celery-beat 这个项目
whiteblack
2019-05-08 11:43:19 +08:00
https://github.com/sibson/redbeat 可以看下这个项目,最近在用,基于 redis 做的,比较通用
julyclyde
2019-05-08 14:48:40 +08:00
djang-celery 不是已经淘汰了吗?我记得已经合并入 celery 本身了啊
rogwan
2019-05-08 15:22:23 +08:00
如果任务比较轻,时间短直接 while 循环吧,celery 有时假死在那,或者后端 borker 出故障也会出问题。繁重任务还是用专门的消息队列处理吧
youngce
2019-05-08 15:26:45 +08:00
- 5L 正解
- django-celery 在 celery 升级到 4.0 后已经废弃
- 最新的 celery 结合 django-celery-beat 可以实现实现动态添加周期任务
tikazyq
2019-05-08 17:28:37 +08:00
可以参考一下我的爬虫项目 crawlab,http://www.github.com/tikazyq/crawlab,之前折腾 celery beat 没有成功,后来转用 apscheduler 就可以动态添加定时任务了 ;-)

文件地址: https://github.com/tikazyq/crawlab/blob/master/crawlab/tasks/scheduler.py
tikazyq
2019-05-08 17:29:00 +08:00
LeoQ
2019-05-09 19:52:58 +08:00
我看的一个项目叫 django-Q https://django-q.readthedocs.io/en/latest/ 因为周期任务都在数据库中,只要填函数名字和参数就可以添加任务

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/562115

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX