odolbeau / rabbit-mq-admin-toolkit
RabbitMQ administration toolkit
Installs: 1 643 994
Dependents: 1
Suggesters: 1
Security: 0
Stars: 84
Watchers: 5
Forks: 28
Open Issues: 6
Requires
- php: >=7.4
- swarrot/swarrot: ^4.12
- symfony/console: ^4.4|^5.3|^6.0
- symfony/yaml: ^4.4|^5.3|^6.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
Installation
The recommended way to install RabbitMQ Tools is through
Composer. Require the
odolbeau/rabbit-mq-admin-toolkit
package:
$ composer require odolbeau/rabbit-mq-admin-toolkit
Usage
You can create / update vhosts with the following command:
vendor/bin/rabbit vhost:mapping:create conf/vhost/events.yml
You can change all connection informations with options. Launch ./console vhost:create -h
to have more informations.
You can launch the vhost creation even if the vhost already exist. Nothing will be deleted (and it will not impact workers).
Configuration
You can use the followings parameters for configuring an exchange:
with dl
: if set to true, all queues in the current vhost will be automatically configured to have a dl (with name:{queueName}_dl
). Of course, the exchangedl
will be created.with_unroutable
: is set to true, anunroutable
exchange will be created and all others ones will be configured to move unroutable messages to this one. Theunroutable
exchange is a fanout exchange and aunroutable
queue is bind on it.
Example
my_vhost_name: permissions: my_user: configure: amq\.gen.* read: .* write: .* parameters: with_dl: true # If true, all queues will have a dl and the corresponding mapping with the exchange "dl" with_unroutable: true # If true, all exchange will be declared with an unroutable config exchanges: my_exchange: type: direct durable: true with_unroutable: true #if true, unroutable exchange will be created (if not already set as global parameter) my_exchange_headers: type: headers durable: true queues: my_queue: durable: true delay: 5000 #create delayed message queue (value is in milliseconds) bindings: - exchange: my_exchange routing_key: my_routing_key - exchange: my_exchange routing_key: other_routing_key another_queue: durable: true with_dl: false retries: [25, 125, 625] bindings: - exchange: my_exchange_headers x-match: all matches: {header_name: value, other_header_name: some_value}
License
This project is released under the MIT License. See the bundled LICENSE file for details.
Changelog
BC breaks between 1.x and 2.0.x
- Short binding syntax is no more supported.
# old syntax queues: my_queue: bindings: - my_exchange:my_routing_key
must be replaced by
# new syntax queues: my_queue: bindings: - exchange: my_exchange routing_key: my_routing_key