0 Вопрос: Невозможно передать сообщение с помощью сельдерея

вопрос создан в Wed, May 8, 2019 12:00 AM

Я пытаюсь использовать встроенную поддержку сельдерея для широковещательной маршрутизации, используя Broadcast и используя rabbitmq в качестве брокера. Я смог успешно опубликовать и получить сообщение, используя прямой обмен по умолчанию, а сейчас я пытаюсь использовать разветвленный обмен, предоставляемый rabbitmq. Для этого кажется, что у сельдерея есть встроенная поддержка, использующая класс Broadcast.

Мой конфет из сельдерея выглядит так:

app.conf.task_queues = (Broadcast('broadcast_tasks'),)

app.conf.task_routes = {
  'tasks.tasks.sync_channels': {
      'queue': 'broadcast_tasks',
      'exchange': 'broadcast_tasks'
  }
}

И вот как я определил свою задачу в app /tasks /tasks.py

.
@app.task(name='sync_channels')
def sync_channels(data):
   logger.debug('Received here')
   pass

Вот как я отправляю сообщение на rabbitmq с помощью сельдерея:

from app.tasks.tasks import sync_channels
sync_channels.delay([])

Когда я открываю пользовательский интерфейс управления rabbitmq, я вижу, что создается разветвленный обмен с именем "broadcast_tasks", но когда я пытаюсь отправить сообщение в задачу sync_channels, он автоматически создает обмен по умолчанию (прямой) и обмен по умолчанию очередь привязана к обмену по умолчанию, и все мои будущие сообщения для задачи sync_channels помещаются в обмен по умолчанию. Кажется, почему-то я не могу настроить функцию вещания, которую предоставляет сельдерей.

Ниже приведены некоторые скриншоты, которые могут помочь вам понять проблему:

 Страница управления Rabbitmq, когда сельдерей не подключен Когда я запускаю работника сельдерея, создается новый разветвленный обмен с именем broadcast_tasks Очередь, созданная сельдереем, которая связывается с обменом broadcast_tasks [! [Обмен по умолчанию и очередь, создаваемая, когда я пытаюсь опубликовать какое-то сообщение для задачи sync_channels

Мне также нужно немного понять, как работает трансляция сельдерея. Кроме того, вместо использования функции широковещания я попытался создать обмен разветвления, но я пытался привязать очередь к этому обмену, а затем опубликовать сообщение. Любая помощь или любой пример того, как это сделать, будет полезна для меня.

Заранее спасибо

    
0
0 ответов                              0                         
источник размещен Вот