以下是我开始芹菜定期任务的方式。首先,我执行此命令:
celery worker -A my_project.celery
然后这个命令:
celery -A my_project beat -l info -S django
在两个不同的终端选项卡上执行这两个命令后,我的芹菜击败周期性任务开始运行。如果我没有运行其中一个描述的命令,我的周期性任务就不会运行。我的问题是:有没有办法用单一命令启动芹菜,或者甚至用runserver命令更好?
答案 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)