celery celerybeat能否在运行时动态添加/删除任务?

2024-06-25 23:21:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个项目,不包括Django,所以我不能使用djancelery。在

但是我发现了使用sqlalchemy的django-celery DatabaseSchedulemodification。在

它像djceley的DatabaseScheule一样工作得很好。 但唯一的问题是它似乎不发送运行时添加的任务,然后我重新启动celery beat,之前添加的任务将成功发送。在

那么,是否可以在不重新启动celery beat的情况下动态添加/删除任务?在

谢谢你的建议。为我糟糕的英语道歉。在

对不起,是我的错。在运行时添加的任务不会立即提取,您可以将DatabaseScheduler.sync_every值更改为更快的值。所以在等了几分钟后就可以工作了。在

多谢屠木的帮助。在


Tags: 项目djangosqlalchemy情况动态sync建议celery
1条回答
网友
1楼 · 发布于 2024-06-25 23:21:11

解决方案1:

我也有同样的问题,问题是,Celery周期调度程序将寻找[djcelery_periodictasks],它将具有[last_update]值。如果[last_update]没有变化,那么芹菜就不会检查[djcelery_periodictask]表。在

我们要做的是,当您添加/删除一个任务时,更新[last_update]时间在[djcelery_periodictasks]内。在

在我的senario中,我有python中的周期性scheduelr。但是我的Web用户界面是用C编写的。我的web应用程序将在[djcelery_periodictask]中添加/删除条目,并在[djcelery_periodictasks]内更新[last_update]时间。在

这样,我就解决了这个问题。在

当我们使用标准的flowerUI时,如果我们添加/删除任务,它将在[djcelery_periodictasks]内更新[last_update]时间。如果您已经开发了自己的自定义UI/应用程序,则必须包含在[djcelery_periodictasks]时间内更新[last_update]的功能,以动态添加/删除任务。在

解决方案2:

使用花:https://github.com/mher/flower

相关问题 更多 >