与枪支一起运行芹菜作为烧瓶应用



我正在运行芹菜作为烧瓶微服务,其中具有任务。

这是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

最新更新