Сельдерей принимает новые задания, но все старые застряли в состоянии PENDING
В двух словах: Я могу запускать новые задачи celery, но старые застряли в состоянии PENDING.
Команда запуска Celery:
celery -A config.celery_app worker --pool=solo --loglevel=info
Окружение:
Celery 5.4.0 redis-server 7.4.1 на WSL (Windows Linux)
Приложение celery и Django работает под windows, а redis-сервер - в WSL.
Я запустил celery пару раз и все было хорошо, но теперь я постоянно вижу некоторые старые задачи в состоянии «PENDING», когда я читаю их состояние в Django с помощью AsyncState(task_id).
Очистка очереди с помощью celery -A config.celery_app purge
тоже ничего не дала.
Я посетил несколько тем, посвященных этому, но ни одна из них, похоже, не имеет отношения к моей конкретной проблеме. (Я все еще могу выполнять новые задания)
Интересно, не является ли это проблемой при работе на WSL или чем-то подобным, потому что я также не могу увидеть очереди задач из приложения или CLI:
celery inspect active_queues
дает kombu.exceptions.OperationalError: [WinError 10061] No connection could be made because the target machine actively refused it
и делает:
i = app.control.inspect()
scheduled = i.scheduled()
показывает отсутствие заданий
Проект построен с использованием django-cookiecutter и задача Celery была определена следующим образом:
@app.task
def my_task(**kwargs):
return my_function(**kwargs)