Сельдерей не обрабатывает задачи каждый раз - PullRequest
0 голосов
/ 07 ноября 2019

У меня ниже конфигурация для сельдерея

celery = Celery(__name__,
    broker=os.environ.get('CELERY_BROKER_URL', 'redis://'),
    backend=os.environ.get('CELERY_BROKER_URL', 'redis://'))

celery.config_from_object(APP_SETTINGS)
ssl = celery.conf.get('REDIS_SSL', True)

r = redis.StrictRedis(REDIS_BROKER, int(REDIS_BROKER_PORT), 0, 
        charset='utf-8', decode_responses=True, ssl=ssl)
        db_uri = celery.conf.get('SQLALCHEMY_DATABASE_URI')

@celery.task 
def process_task(data):
    #some code here

Я вызываю задачу процесса внутри конечной точки API, как process_task.delay(data)

иногда это задачи обработки, иногда нет.

Может кто-нибудь помочь мне решить эту проблему?

Я работаю как celery worker -A api.celery --loglevel=DEBUG --concurrency=10

1 Ответ

0 голосов
/ 07 ноября 2019

Как только все рабочие процессы заняты, новые задачи просто будут сидеть в очереди, ожидая следующего незанятого рабочего процесса, чтобы запустить задачу. Это наиболее вероятно, почему вы воспринимаете это как «не обрабатывать задачи каждый раз». Просмотрите раздел мониторинга и управления документации по Celery, чтобы узнать, как контролировать кластер Celery. Для начала выполните celery worker -A api.celery inspect active, чтобы проверить текущие задачи.

...