0 Soru: Kereviz kullanarak mesaj yayınlanamıyor

tarafından oluşturulan soru Wed, May 8, 2019 12:00 AM

Celery'nin yerleşik yayınını Broadcast kullanarak ve broker olarak rabbitmq kullanarak yayın yönlendirmeyi desteklemeye çalışıyorum. Varsayılan doğrudan değiş tokuşu kullanarak başarılı bir şekilde mesaj yayınlamayı ve iletmeyi başardım, şimdi rabbitmq'in sağladığı fanout değişimini kullanmaya çalışıyorum. Bunun için kereviz Broadcast sınıfını kullanan yerleşik bir desteğe sahip görünüyor.

Kereviz conf görünüyor bu gibi:

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

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

Ardından, görevimi app /tasks /tasks.py'de nasıl tanımladım:

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

İşte kereviz kullanarak şu mesajı iletmekteyim rabbitmq:

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

Tavşan yönetimi kullanıcı arayüzünü açtığımda, "broadcast_tasks" adında bir fanout değiş tokuşu oluşturulduğunu görebiliyorum, ancak bir iletiyi sync_channels görevine itmeye çalıştığımda, otomatik olarak bir varsayılan (doğrudan) değiş tokuş ve bir varsayılan oluşturuyor sıra varsayılan değiş tokuşa bağlanır ve gelecekteki tüm eşitlemeleri sync_channels görevi iletilerim varsayılan değişime itilir. Her nasılsa, kerevizin sağladığı Yayın özelliğini yapılandıramıyorum.

Aşağıda, sorunu anlamanıza yardımcı olabilecek bazı ekran görüntüleri verilmiştir:

 Kereviz bağlı değilken tavşanm yönetim sayfası Kereviz işçisini başlattığımda broadcast_tasks adlı yeni bir yayıncı takası oluşturuldu Kereviz tarafından broadcast_tasks değiş tokuşuna bağlanan bir kuyruk [! [Sync_channels görevinde bazı iletiler yayınlamaya çalıştığımda oluşturulan varsayılan bir takas ve kuyruk>

Ayrıca Celery'nin Broadcast'inin nasıl çalıştığı hakkında biraz anlayışa ihtiyacım var. Ayrıca Broadcast özelliğini kullanmak yerine fanout değişimi oluşturmaya çalıştım, ancak bu borsaya bir sıra bağlamak ve ardından mesajı yayınlamakta zorlandım. Herhangi bir yardım veya bunun nasıl yapılacağına dair herhangi bir örnek benim için yararlı olacaktır.

Şimdiden teşekkür ederiz

    

0
0 Yanıtlar                              0                         
kaynak yerleştirildi İşte