gpt4 book ai didi

python - celery celerybeat 可以在运行时动态添加/删除任务吗?

转载 作者:太空宇宙 更新时间:2023-11-04 05:30:54 34 4
gpt4 key购买 nike

我有一个不包含 Django 的项目,所以我不能使用 djcelery。

但我找到了 modificationdjango-celery DatabaseSchedule使用 sqlalchemy。

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

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

感谢您的任何建议。抱歉我的英语不好。

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

感谢tuomur的帮助。

最佳答案

解决方案一:

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

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

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

通过这种方式,我已经解决了这个问题。

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

解决方案2:

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

关于python - celery celerybeat 可以在运行时动态添加/删除任务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37153373/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com