混乱!
根据我发现的教程,很容易使用supervisor启动django,如下所示:
supervisord.conf:
[program:gunicorn]
command=/home/me/.virtualenvs/app/bin/gunicorn app.wsgi:application --bind 127.0.0.1:8000 ;
然而芹菜似乎需要自己的启动方法:
celery -A app worker -l info
所以在我的无知/困惑中,似乎我必须从Gunicorn或Celery开始。显然我很困惑,因为毫无疑问,很多人在主管内使用芹菜。
我哪里错了?如何使用主管在Gunicorn内启动celery-django应用程序?
答案 0 :(得分:4)
celery -A app worker -l info
上面的命令将在前台启动一个芹菜工人的实例。
如果您想使用主管来守护工作人员,则有an example supervisor configuration available in the celery source。主管可以管理多个程序,因此您可以使用它来管理gunicorn和一个或多个芹菜工人实例。
芹菜工人作为自己的过程运行。它连接到代理(例如redis)并等待您配置的队列上的任务。这些任务将从您的django应用程序发送。
以下教程非常好地解释了如何配置主管以启动和管理芹菜工作者。 https://realpython.com/blog/python/asynchronous-tasks-with-django-and-celery/