我正在运行芹菜作为烧瓶微服务,其中具有任务。
这是Manage.py
的一部分
class CeleryWorker(Command):
"""Starts the celery worker."""
name = 'celery'
capture_all_args = True
def run(self, argv):
if "down" in argv:
ret = subprocess.call(
['pkill', '-9', '-f', "my_app.celery"])
sys.exit(ret)
else:
ret = subprocess.call(
['celery', 'worker', '-A', 'my_app.celery'] + argv)
sys.exit(ret)
manager.add_command("celery", CeleryWorker())
我可以使用 python manage.py runserver
或`芹菜工作者-a my_app.celery启动服务,并且它运行完美,并在tasks.py中注册所有任务。
但是,在生产中,我想对此微服务处理多个请求,并想添加Gunicorn来服务这些请求。我该怎么做?
我无法弄清楚我如何同时运行我的枪命令和芹菜命令。
另外,我正在使用gunicorn在其Create_app中使用Gunicorn运行其他API服务,因为我不需要它们运行芹菜命令。
建议使用主管,这使您可以控制许多过程。
step1: pip install supervisor
step2: vi supervisord.conf
[program:flask_wsgi]
command=gunicorn -w 3 --worker-class gevent wsgi:app
directory=$SRC_PATH
autostart=true
[program:celery]
command=celery worker -A app.celery --loglevel=info
directory=$SRC_PATH
autostart=true
step3:运行supervisord -c supervisord.conf