我是否正确执行芹菜共享任务?

时间:2017-04-21 10:52:13

标签: django celery django-celery celerybeat periodic-task

以下是我开始芹菜定期任务的方式。首先,我执行此命令:

celery worker -A my_project.celery

然后这个命令:

celery -A my_project beat -l info -S django

在两个不同的终端选项卡上执行这两个命令后,我的芹菜击败周期性任务开始运行。如果我没有运行其中一个描述的命令,我的周期性任务就不会运行。我的问题是:有没有办法用单一命令启动芹菜,或者甚至用runserver命令更好?

1 个答案:

答案 0 :(得分:1)

您使用Celery的方法是正确的。您可以使用参数-B, --beat使用单个命令启动节拍和工作:

# This will start worker AND beat process
celery worker --app=my_project -l=INFO --beat -S django

在生产中不使用,请参阅Celery文档(http://docs.celeryproject.org/en/latest/reference/celery.bin.worker.html)中的此说明:

  

-B旨在用于开发目的。 对于生产环境,您需要单独启动芹菜拍打

很少有人注意到:1)我认为没有办法将芹菜和runserver放在一起(老实说,我认为这不是一个好主意); 2)我在您的问题中看到django-celery标记。这是集成Django和Celery的旧的和不推荐的方式:

  

如果您想使用DJANGO RESULT BACKEND,则仅需要此项目   AND ADMIN INTEGRATION(来源:https://github.com/celery/django-celery