I’ve been working with celery lately and I don’t like it. The configuration is dirty, complex, and poorly documented.
I want to send broadcast messages using Celery from one manufacturer to multiple consumers. I am confused by the discrepancy between the terms celery and the terms of the underlying RabbitMQ transport.
In RabbitMQ you can have one fanout Exchange and several queues for broadcasting messages:

But in Celery, all terms are confused: here you can have a broadcast queue that sends messages to several consumers:

I don’t even understand how it is supposed that the Celery broadcast queue should work at all, because RabbitMQ queues with multiple consumers are designed to balance the load. Thus, in RabbitMQ, if several consumers are connected to the same queue (i.e., the Consumer Pool), only one consumer will receive and process the message,
source share