Celery продолжает выдавать ошибку, когда я запускаю свои рабочие с --pool gevent или eventlet, но работает нормально без указания этих пулов [дубликат]

У меня есть задача celery, которая выглядит так:

from celery import Celery
from asgiref.sync import async_to_sync
from celery_app.celery_commands import some_async_command
import os

redis_connection_string = os.environ.get("REDIS_URL")
celery_app = Celery(
    'tasks', backend=f"{redis_connection_string}/0", broker=f"{redis_connection_string}/1")

@celery_app.task()
def sample_task(**kwargs):
    result = async_to_sync(some_async_command)(**kwargs)
    return result

Когда я использую для этой задачи run celery с : celery -A celery_app.tasks worker --loglevel=INFO -n my_app_worker --concurrency=4, все работает нормально. Однако, поскольку async-функция some_async_command в основном связана с вводом-выводом и выполняет обращения к сети, я рассматривал возможность использования gevent pool. Я установил gevent, но когда я запускаю celery -A celery_app.tasks worker --loglevel=INFO -n my_app_worker --concurrency=4 --pool gevent, он выдает ошибку:

Usage: celery [OPTIONS] COMMAND [ARGS]...
Try 'celery --help' for help.

Error: Invalid value for '-A' / '--app': 
Unable to load celery application.
Module 'select' has no attribute 'epoll'

Что я упускаю?

Вернуться на верх