PHPackages                             mkoprek/rabbitmq-dlq-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. mkoprek/rabbitmq-dlq-bundle

ActiveSymfony-bundle[Queues &amp; Workers](/categories/queues)

mkoprek/rabbitmq-dlq-bundle
===========================

1.0.0(4y ago)12MITPHPPHP &gt;=8.0

Since Aug 18Pushed 4y ago1 watchersCompare

[ Source](https://github.com/mkoprek/rabbitmq-dlq-bundle)[ Packagist](https://packagist.org/packages/mkoprek/rabbitmq-dlq-bundle)[ RSS](/packages/mkoprek-rabbitmq-dlq-bundle/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (1)Dependencies (7)Versions (2)Used By (0)

RabbitMQ DLQ Bundle
===================

[](#rabbitmq-dlq-bundle)

[![Build Status](https://camo.githubusercontent.com/22185af484a622729a9cca6b404cc493246313659e55f98e23026232a6fc0679/68747470733a2f2f6170702e7472617669732d63692e636f6d2f6d6b6f7072656b2f7261626269746d712d646c712d62756e646c652e7376673f6272616e63683d6d61696e)](https://app.travis-ci.com/mkoprek/rabbitmq-dlq-bundle)[![codecov](https://camo.githubusercontent.com/11b5f64e51f5e07ec9e33aa67862099da0df51e03832855e3d2f8d48cacc38a6/68747470733a2f2f636f6465636f762e696f2f67682f6d6b6f7072656b2f7261626269746d712d646c712d62756e646c652f6272616e63682f6d61696e2f67726170682f62616467652e7376673f746f6b656e3d4c4d5150583345504858)](https://codecov.io/gh/mkoprek/rabbitmq-dlq-bundle)

Configuration
-------------

[](#configuration)

This bundle is extension to [RabbitMqBundle](https://github.com/php-amqplib/RabbitMqBundle), it will automatically add DLQ queues to existing `multiple_consumer` in `old_sound_rabbit_mq.yaml`

```
    multiple_consumers:
        default:
            connection: default
            exchange_options:
                name: 'exchange'
                type: 'topic'
            graceful_max_execution:
                timeout: 60
            queues:
                legacy.investments.investment_added.event:
                    name: 'legacy.investments.investment_added.event'
                    routing_key: 'legacy.investments.investment_added.event'
                    callback: Namespace\InvestmentAddedLegacyConsumer
                legacy.investments.investment_edited.event:
                    name: 'legacy.investments.investment_edited.event'
                    routing_key: 'legacy.investments.investment_edited.event'
                    callback: Namespace\InvestmentEditedLegacyConsumer
```

After that configuration you will have 2 additional DLQ queues with routing keys:

- legacy.investments.investment\_added.retry
- legacy.investments.investment\_edited.retry

Each \*.retry queue will re-route all messages back to original queue after `30s` delay.

To put message to `*.retry` queue you just need to throw any **Exception** when parsing message.

Consuming
---------

[](#consuming)

You are creating consumer like in example above - by adding callback. This callback MUST extends `AbstractMessageConsumer`.

That is it! If everything is OK, just leave it.
If there was any problem, then throw Exception.

Producing
---------

[](#producing)

Just inject `MessageProducerInterface` to your service where you need to produce message. Then create class with extends `AbstractMessage` or implements `MessageInterface`.

### Message

[](#message)

```
