0 Questão: Não é possível transmitir mensagem usando aipo

pergunta criada em Wed, May 8, 2019 12:00 AM

Estou tentando usar a compilação do aipo para dar suporte ao roteamento de broadcast usando o Broadcast e usando o rabbitmq como intermediário. Eu consegui publicar e receber mensagens usando a troca direta padrão, agora estou tentando usar o fanout exchange que o rabbitmq oferece. Para isso, parece aipo tem um suporte interno usando a classe Broadcast.

Meu aipo conf parece com isso:

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

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

E seguir é como defini minha tarefa em app /tasks /tasks.py

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

Aqui está como eu estou enviando mensagens para o rabbitmq usando aipo:

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

Quando abro a interface de gerenciamento do rabbitmq, vejo que uma troca de fanout é criada com o nome "broadcast_tasks", mas quando tento enviar uma mensagem para a tarefa sync_channels, ela cria automaticamente uma troca padrão (direta) e um padrão fila vinculada à troca padrão e todas as minhas mensagens futuras para a tarefa sync_channels são enviadas para a troca padrão. Parece que, de alguma forma, não consigo configurar o recurso Broadcast que o aipo fornece.

Abaixo estão algumas capturas de tela que podem ajudar você a entender o problema:

 Página de gerenciamento do Rabbitmq quando o aipo não está conectado Uma nova troca de fanout chamada broadcast_tasks é criada quando eu inicio o celery worker Uma fila criada pelo aipo que se liga ao broadcast_tasks troca [! [Uma troca padrão e fila criadas quando eu tento publicar alguma mensagem na tarefa sync_channels

Eu também preciso de um pouco de compreensão sobre como funciona o Broadcast do aipo. Além disso, em vez de usar o recurso Broadcast, tentei criar uma fanout exchange, mas lutei para vincular uma fila a essa troca e, em seguida, publicar a mensagem. Qualquer ajuda ou qualquer exemplo sobre como fazer isso será útil para mim.

Obrigado antecipadamente

    
0
0 Respostas                              0                         
fonte colocada Aqui