Python 使用Gunicorn将芹菜作为烧瓶应用程序运行
我将芹菜作为Flask microservice运行,其中tasks.py带有tasks,manage.py包含运行Flask服务器的调用 这是manage.py的一部分Python 使用Gunicorn将芹菜作为烧瓶应用程序运行,python,flask,celery,microservices,gunicorn,Python,Flask,Celery,Microservices,Gunicorn,我将芹菜作为Flask microservice运行,其中tasks.py带有tasks,manage.py包含运行Flask服务器的调用 这是manage.py的一部分 class CeleryWorker(Command): """Starts the celery worker.""" name = 'celery' capture_all_args = True def run(self, argv): if "down" in arg
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
或'celery worker-A my_app.芹菜启动该服务,它运行良好,并在tasks.py中注册所有任务
但在生产中,我想处理这个微服务的多个请求,并想添加gunicorn来服务这些请求。我该怎么做
我不知道如何同时运行gunicorn命令和芹菜命令
另外,我在生产中使用gunicorn的create_应用程序运行其他api服务,因为我不需要它们来运行芹菜命令。推荐使用,它允许您控制许多进程
步骤1:pip安装管理器
第二步: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
步骤3:运行
supervisord-c supervisord.conf
文件名与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