celery 到底能不能动态添加周期任务

2019-08-23 22:23:37 +08:00
 hanssx
动态即通过前端 UI 等手段自定义周期时间,而不是通过初始化时写配置文件,经过 gg 和实践摸索,发现并不能实现动态添加周期任务。
https://stackoverflow.com/questions/10194975/how-to-dynamically-add-remove-periodic-tasks-to-celery-celerybeat/43752416
倒数第 3 个回答,提到了文档中的使用 https://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#entries
然后我使用文档中的例子 add_periodic_task,并没有成功,文档中说的不是动态添加?
3207 次点击
所在节点    Python
13 条回复
GoLand
2019-08-23 22:26:20 +08:00
添加了 periodic task 得重启 beat 和 celery 的,动态添加不了。
HFcbyqP0iVO5KM05
2019-08-24 02:53:43 +08:00
可以添加,但是默认没有,得自己实现。
beat 也是周期性从文件读任务参数。
youngce
2019-08-24 13:55:01 +08:00
django celery beat 是可以实现读取数据库中动态生成的任务周期设置,来实现你说的这个需求的
youngce
2019-08-24 13:55:57 +08:00
当然你要是没有用 django 的话,其他的框架有没有提供类似的第三方包我就不清楚了
hanssx
2019-08-24 19:49:46 +08:00
@GoLand
@gulu
@youngce 谢谢三位,我明白了。
linvaux
2019-08-24 22:55:24 +08:00
最近也在学习 celery,感觉有点复杂
Eds1995
2019-08-25 08:21:32 +08:00
GitHub 上有一个用 redis 来实现动态添加任务的库,rebeat
hanssx
2019-08-26 11:20:14 +08:00
@Eds1995 兄弟我没搜到你这个库啊
hanssx
2019-08-26 11:52:13 +08:00
Eds1995
2019-08-26 14:20:23 +08:00
hanssx
2019-08-26 18:14:15 +08:00
@Eds1995 感谢,不过不怎么会用,文档有点少。
hanssx
2019-08-26 22:05:23 +08:00
推荐个国人写的,但是我用着有些问题,examples/base/tasks.py 文件是没有问题的,https://github.com/AngelLiang/celery-sqlalchemy-scheduler
hanssx
2019-08-27 14:17:43 +08:00

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

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

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

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

© 2021 V2EX