@pulivilizator

Почему Celery регистрирует задачи, но не выполняет их?

Код предельно простой:

tasks.py:
from celery import Celery, shared_task

app=Celery('tasks', broker='amqp://user:pass@32.41.61.81:5672/vhost', backend='redis://localhost:6379/0')

@shared_task
def add(x, y):
    return x + y


start_task.py:
import tasks

r = tasks.add.delay(3, 3)
a = r.get()
print(a)


На сервере Ubuntu стоит RabbitMQ, Celery подключается к нему успешно, никаких проблем, вебверсия тоже работает без проблем. Через библиотеку pika пробовал подключаться к RabbitMQ, отправлять сообщения и забирать их, тоже все хорошо, но если запускаю через Celery, то задачи не выполняются, просто висят в статусе "Получено".
Ставлю Celery и RabbitMQ первый раз, возможно какая то глупая ошибка, ниже прикладываю скрин из Flower
65318c289182c290366270.png

upd: Решил установкой eventlet, и запуском с -P eventlet
  • Вопрос задан
  • 347 просмотров
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
логи воркера смотрите
тут изучите https://habr.com/ru/articles/686820/

код простой, но, увы, Celery непростой

если нет желания перейти на dramatiq пробуйте настроить по туториалу и потом уже наворачивать

и - замените брокера на Редис, Раббит тут лишнее
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы