Почти точный дубликат this SO question, но ответ мне не помогает. Я установил Erlang, Celery и RabbitMQ и создал сельдерей для использования AMQP в качестве бэкэнд-брокер. Я следил за quickstart example (создайте задачу, которая добавляет два числа вместе), но когда я получаю команду result.ready()
, процесс Celery просто зависает.Сельдерей висит на готовом()
- Это не проблема аутентификации (четверной проверены и испытаны недопустимые логины)
- Это не из дискового пространства ошибки, как и в предыдущий SO вопрос (> 800mb бесплатно)
- работник и работает ("потребитель: Готов принять задачи!")
- Музейный запущена и работает ("брокерский бег")
- можно увидеть сельдерей подключение к RabbitMQ ("прием AMQP соединения (IP -> IP)")
- Я думаю, что это вопрос моего сценария на Python, а не con правильно отрегулировать рабочий процесс Сельдерей. Может быть, потому, что я пытаюсь запустить это на малиновой пи? В доступной памяти ОС очень низка.
Я разорву свои волосы здесь. Любая помощь приветствуется!
Действительно ли пользователь начинает выполнение задачи? Висит ли это, когда вы пытаетесь получить результат после выполнения задачи, или потребитель вообще не получает эту задачу? – Clara
Нет, потребитель (работник) вообще не получает задание, что, я думаю, указывает на ошибку связи в брокере. Использование того же кода с Redis вместо RabbitMQ работает немедленно, поэтому это не проблема с кодом. – keithl8041
Пробовал ли вы перечислить содержимое очереди с помощью: quewnmqadmin list queues ->, чтобы узнать, находятся ли сообщения в ваших очередях? Если они не дойдут до вашего потребителя, а издатель опубликовал их, они все равно должны быть видны в очередях при перечислении очередей. – Clara