0 Soalan: Tidak dapat menyiarkan mesej menggunakan saderi

soalan dicipta di Wed, May 8, 2019 12:00 AM

Saya cuba menggunakan binaan celerius untuk menyokong penyiaran siaran menggunakan Penyiaran dan menggunakan rabbitmq sebagai broker. Saya telah berjaya menerbitkan dan menerima mesej menggunakan pertukaran terus lalai, sekarang saya cuba menggunakan pertukaran fanout yang disediakan oleh rabbitmq. Untuk ini seolah-olah saderi mempunyai sokongan terbina menggunakan kelas Broadcast.

Sus saderi saya kelihatan seperti ini:

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

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

Dan berikut adalah bagaimana saya menetapkan tugas saya dalam aplikasi /tugas /tugas.py

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

Berikut adalah cara saya menolak mesej kepada rabbitmq menggunakan saderi:

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

Ketika saya membuka UI pengurusan rabbitmq, saya dapat melihat pertukaran fanout dibuat dengan nama "broadcast_tasks", tetapi ketika saya mencoba untuk mendorong pesan ke tugas sync_channels, ia secara otomatis membuat pertukaran default (langsung) dan default Beratur mengikat pertukaran default dan semua pesanan masa depan saya untuk tugas sync_channels ditolak ke bursa lalai. Nampaknya entah bagaimana saya tidak dapat mengkonfigurasi ciri Penyiaran yang menyediakan saderi.

Berikut adalah beberapa tangkapan skrin yang boleh membantu anda memahami masalah:

 Halaman pengurusan Rabbitmq apabila saderi tidak disambungkan Pertukaran fanout baru bernama broadcast_tasks dibuat semasa saya memulakan pekerja saderi Antrian yang dicipta oleh saderi yang mengikat kepada pertukaran broadcast_tasks [! [Pertukaran dan barisan lalai yang dibuat semasa saya cuba menerbitkan beberapa mesej untuk tugas sync_channels

Saya juga memerlukan sedikit pemahaman mengenai bagaimana Penyiaran saderi berfungsi. Juga daripada menggunakan ciri Penyiaran saya cuba mencipta pertukaran fanout, tetapi saya berjuang untuk mengikat barisan ke bursa itu dan kemudian menerbitkan mesej. Apa-apa bantuan atau apa-apa contoh tentang cara melakukannya akan berguna untuk saya.

Terima kasih terlebih dahulu

    
0
0 Jawapan                              0                         
sumber diletakkan di sini