Я использую Celery в качестве микросервиса Flask, где у него есть tasks.py с заданиями, а manage.py содержит вызов для запуска сервера фляг.
Это часть 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
, либо с `celery worker -A my_app.celery, и она отлично работает и регистрирует все задачи.в tasks.py.
Но в процессе работы я хочу обработать несколько запросов к этому микросервису и хочу добавить gunicorn для обслуживания этих запросов.Как мне это сделать?
Я не могу понять, как я могу одновременно запустить и свою команду gunicorn и команду сельдерея.
Кроме того, я запускаю другие сервисы API, использующие gunicorn, из его create_app,так как они мне не нужны для запуска команды сельдерея.