如何在Django中动态安排任务



我需要在Django中构建一个应用程序,该应用程序可以在运行时指定时每天执行某些任务。

我看过芹菜,但找不到任何有帮助的东西。我找到了apply_async,并且可以在特定的持续时间内完成任务执行一次,但不会复发。我缺少一些东西,但不知道。

请建议我如何实现这一目标。

django-celery-beat软件包,它允许您动态地将任务添加到数据库中,然后按您在数据库中定义时执行它们。(例如,每5分钟(,但是当前它们的错误会导致该任务添加到数据库时,不会将其附加到芹菜队列中。建议的解决方法是每次添加新任务时重新启动芹菜过程。
我用Dan Baders schedule软件包解决了它。我在每分钟安排任务,该任务检查数据库是否需要在当前分钟内执行的任务。然后我在新线程中启动每个任务。
希望这会有所帮助。

高级Python调度程序可能是您的解决方案。

https://github.com/agronholm/apscheduler

https://apscheduler.readthedocs.io/en/latest/

apscheduler可以动态添加作业。

您可以查看我的github示例:https://github.com/easytrader/apscheduler_for_django/blob/master/master/trips/views.py

一种简单的解决方案,可以防止使用重型AMQP堆栈,防止Celery之类的外部依赖关系,您可以做的一件事是您可以编写自定义管理命令,

python manage.py my_daily_cmd

如果您使用的是Windows使用Cron,如果您在使用Windows使用或schtasks.exe,

使用cron/at/schtasks.exe,您可以在所需的时间运行my_daily_cmd

我认为 django-crontab是您的好解决方案。

芹菜和cron的替代方案是python-rq。

相关内容

  • 没有找到相关文章