Queue decorators are modules implemented as behaviours that can let you extend queues. A decorator will have a set of callbacks that will be called from the queue process in response to some events that might happen at the queue, like when messages are delivered to consumers, which might cause the list of active consumers to be updated.
They were added to the broker as a way to handle consumer priorities or by the federation plugin, to know when to move messages across federated queues.
Decorators need to implement the rabbit_queue_decorator
behaviour
and are usually associated with queues via policies.
A Queue decorator can receive notifications of the following events:
- Queue Startup
- Queue Shutdown
- Consumer State Changed (active consumers)
- Queue Policy Changed