STLEON
@STLEON
In Console We Trust. Code hard. Or die.

Почему Celery не возвращает response RabbitMQ?

В своем приложении я использую Celery и RabbitMQ.

На localhost все замечательно работает:
В call.py я использую groups, делается запрос к нескольким workers, они считают результат, возвращают его, получаю его в том же call.py.

Проблемы начинаются, когда я запускаю воркеров на другом хосте.

Запускаю RabbitMQ и call.py на макбуке, Celery-workers - на PC (windows).
Воркеры принимают сообщения, высчитывают результат (везде succeeded), но почему-то не отсылают эти результаты бэкенду (хотя он указан в настройках, иначе бы на localhost результат тоже не отсыпался бы).

Никаких ошибок в логах Celery, ничего. Логи RabbitMQ - ничего интересного (accepting/closing connections).

У мака айпи 192.168.1.14, его же и использую в параметрах broker и backend, когда создаю экземпляр Celery. (брэндмауер на маке выключен).

В rabbitmq-env.conf:
NODE_IP_ADRESS=192.168.1.14

В настройках роутера сделал переадресацию порта 5672 на макбук.

Даже когда в broker и backend отправляю свой public ip (5.57.N.N), на localhost (когда и RabbitMQ, и Celery) - все шикарно, получаю высчитанный воркерами ответ, стоит перенести этих воркеров на другую машину - все считают, вот только почему-то отправить не хотят или не могут.

В чем проблема, как ее исправить? (третий день бьюсь головой, не могу понять)

Спасибо!
  • Вопрос задан
  • 2496 просмотров
Решения вопроса 1
STLEON
@STLEON Автор вопроса
In Console We Trust. Code hard. Or die.
Как это не странно, запустил воркеров на дистрибутиве Linux, и все сразу заработало - ответ приходит.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы