Можно ли использовать пулы выполнения gevent с Celery beat? - PullRequest
0 голосов
/ 20 июня 2020

У меня есть несколько задач, которые я хотел бы выполнять параллельно. Они почти на 100% привязаны к вводу-выводу и не требуют интенсивного использования ЦП (просто делают запросы API).

Я использую сельдерей / сельдерей в среде Docker и только что добавил --pool=gevent в свой docker -compose файл , но я также должен передать --beat.

Когда я запускаю свое приложение, я получаю следующую ошибку:

celery.exceptions.ImproperlyConfigured: -B option doesn't work with eventlet/gevent pools: use standalone beat instead.

Есть ли способ использовать выполнение потока с помощью Celery beat?

1 Ответ

1 голос
/ 21 июня 2020

То, что вы пытаетесь сделать (например, вставить бит внутри воркера) в любом случае не рекомендуется . Поэтому я предлагаю вам запустить автономный бит Celery (как указано в сообщении об ошибке) и воркер (ы) с пулом gevent. В рабочей части вы используете преимущества gevent, поскольку они выполняют связанные с вводом-выводом задачи, а не ритм Celery, который просто запускает их.

В качестве альтернативы, если вы используете Celery 4.4 или новее, вы можете попробовать используйте --pool threads для пула потоковых задач.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...