snortlin / symfony-messenger-extensions
Symfony Messenger Extensions
2.0.0
2024-03-01 09:17 UTC
Requires
- php: ^8.3
- symfony/event-dispatcher: ^5.4|^6.4|^7.0
- symfony/messenger: ^5.4|^6.4|^7.0
- symfony/uid: ^5.4|^6.4|^7.0
- symfony/var-dumper: ^5.4|^6.4|^7.0
README
Installation
The preferred method of installation is via Composer:
composer require snortlin/symfony-messenger-extensions
Usage
Messenger error dump listener
# /config/services.yaml
services:
Snortlin\SymfonyMessengerExtensions\EventSubscriber\WorkerMessageFailedListener:
arguments:
# Error log dump path
$messengerLogDirectory: '%kernel.logs_dir%/messenger/errors'
# Optionally, log dump also for retryable messages (default false)
$logRetryableMessages: true
tags:
- { name: kernel.event_listener, event: Symfony\Component\Messenger\Event\WorkerMessageFailedEvent }
Message UniqueId
# /config/services.yaml
services:
Snortlin\SymfonyMessengerExtensions\Middleware\MessageUniqueIdMiddleware: ~
# /config/packages/messenger.yaml
framework:
messenger:
buses:
messenger.bus.default:
middleware:
- Snortlin\SymfonyMessengerExtensions\Middleware\MessageUniqueIdMiddleware
Constant Retry Strategy
# /config/services.yaml
services:
app.messenger.retry.constant_retry_strategy:
class: Snortlin\SymfonyMessengerExtensions\Retry\ConstantRetryStrategy
arguments:
# Retry delays in ms, CSV string format (1000,2000,5000) => delay 1s, 2s, 5s.
$retries: '1000,2000,5000'
# /config/packages/messenger.yaml
framework:
messenger:
transports:
my_transport:
retry_strategy:
service: app.messenger.retry.constant_retry_strategy
Infinite Constant Retry Strategy
# /config/services.yaml
services:
app.messenger.retry.infinite_constant_retry_strategy:
class: Snortlin\SymfonyMessengerExtensions\Retry\InfiniteConstantRetryStrategy
arguments:
# Retry delays in ms, CSV string format (1000,2000,5000) => delay 1s, 2s, 5s, 5s, ...
$retries: '1000,2000,5000'
# /config/packages/messenger.yaml
framework:
messenger:
transports:
my_transport:
retry_strategy:
service: app.messenger.retry.infinite_constant_retry_strategy