tailrdigital/sulu-messenger-failed-queue-bundle

0.4.1 2024-09-06 10:58 UTC

This package is auto-updated.

Last update: 2024-09-06 10:58:35 UTC


README

此包提供了Sulu管理面板,用于管理symfony/messenger失败队列中的失败消息。

通过管理面板,您可以检查每个失败消息的错误/异常详细信息,并在需要时触发重新入队/重试。

演示

failed-queue-sulu.mov

安装

composer require tailrdigital/sulu-messenger-failed-queue-bundle

注册包

确保在config/bundles.php中激活了该包

Tailr\SuluMessengerFailedQueueBundle\SuluMessengerFailedQueueBundle::class => ['all' => true]

注册新的管理路由

您需要手动在文件config/routes_admin.yaml中注册失败队列管理控制器路由。

# config/routes_admin.yaml

tailr_failed_queue:
    resource: '@SuluMessengerFailedQueueBundle/Presentation/Controller/Admin'
    type: attribute
    prefix: /admin/api

添加节点依赖

通过assets/admin/package.json在您的管理员的节点依赖中注册一个额外的模块。

{
  "dependencies": {
    "sulu-messenger-failed-queue-bundle": "file:node_modules/@sulu/vendor/tailrdigital/sulu-messenger-failed-queue-bundle/assets/admin"
  }  
}

确保在您的管理员assets/admin/index.jsassets/admin/app.js文件中加载额外的节点模块

import 'sulu-messenger-failed-queue-bundle';

重新编译您的管理员资源

cd /app/assets/admin
npm install
npm run watch

设置您的失败队列

您可以根据config/packages/messenger.yaml中的此示例配置设置symfony/messenger队列。

# config/packages/messenger.yaml

framework:
    messenger:
        failure_transport: failed
        transports:
            async: '%env(MESSENGER_TRANSPORT_ASYNC_DSN)%'
            failed: 'doctrine://default?queue_name=failed'

权限

确保您已为该包在Sulu管理中设置正确的权限。转到设置 > 用户角色并启用所需的权限。之后,您可以通过设置 > 失败队列找到失败队列视图/面板。

配置

如果您有一个非默认的失败队列配置,您可以通过创建一个config/packages/sulu_messenger_failed_queue.yaml文件来覆盖我们的默认设置。

# config/packages/sulu_messenger_failed_queue.yaml

sulu_messenger_failed_queue:
    failure_transport_service: 'messenger.transport.failed_high_priority' # Default 'messenger.transport.failed'
    failure_transport_table: 'failed_messages' # Default 'messenger_messages'
    failure_transport_queue_name: 'failed_high_priority' # Default 'failed'

如果需要,您可以通过failure_transport_service定义配置的(失败)传输服务定义或别名名称。另一方面,您可以修改数据库表名通过failure_transport_table,并通过failure_transport_queue_name定义(失败)队列名称。

已知限制

symfony/messenger包支持多个失败队列/传输,但此包仅支持可视化和管理一个(doctrine)失败队列/传输。