tailrdigital / sulu-messenger-failed-queue-bundle
0.4.1
2024-09-06 10:58 UTC
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- azjezz/psl: ^2.6 || ^3.0
- doctrine/dbal: ^3.0
- doctrine/orm: ^2.14
- jackalope/jackalope-doctrine-dbal: ^1.6 || ^2.0
- sulu/sulu: ^2.5
- symfony/config: ^6.0
- symfony/console: ^6.0
- symfony/dependency-injection: ^6.0
- symfony/doctrine-messenger: ^6.0
- symfony/http-foundation: ^6.0
- symfony/messenger: ^6.0
Requires (Dev)
- php-cs-fixer/shim: ^3.41
- phpro/symfony-conventions: ^1.5
- phpspec/prophecy-phpunit: ^2.1
- phpunit/phpunit: ^9.6
- psalm/plugin-symfony: ^5.1
- vimeo/psalm: ^5.18
- weirdan/doctrine-psalm-plugin: ^2.9
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.js
或assets/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)失败队列/传输。