snortlin/symfony-messenger-extensions

2.0.0 2024-03-01 09:17 UTC

This package is auto-updated.

Last update: 2024-08-30 10:27:12 UTC


README

安装

首选的安装方式是通过 Composer

composer require snortlin/symfony-messenger-extensions

使用方法

Messenger 错误记录监听器

# /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 }

消息唯一标识符

# /config/services.yaml
services:
    Snortlin\SymfonyMessengerExtensions\Middleware\MessageUniqueIdMiddleware: ~

# /config/packages/messenger.yaml
framework:
    messenger:
        buses:
            messenger.bus.default:
                middleware:
                    - Snortlin\SymfonyMessengerExtensions\Middleware\MessageUniqueIdMiddleware

常量重试策略

# /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

无限常量重试策略

# /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