silverslice / yii2-queue-failed
管理 Yii 2 中的失败队列作业
v1.0.0
2023-06-19 01:51 UTC
Requires
- php: >=7.0
- yiisoft/yii2: ~2.0.14
- yiisoft/yii2-queue: >=2.2.0
README
当您的作业在 Yii 2 中尝试达到最大次数后失败,它将被从队列中移除作为完成。此扩展将失败作业保存到数据库表中,并帮助您稍后查看和重试。
安装
composer require silverslice/yii2-queue-failed
应用数据库迁移
yii migrate --migrationPath=@vendor/silverslice/yii2-queue-failed/src/migrations/
配置
将 queueFailed
组件添加到控制台应用程序配置文件中
return [ 'components' => [ 'queueFailed' => [ 'class' => silverslice\queueFailed\QueueFailed::class, ], ], ];
将 queueFailed
组件添加到 bootstrap
return [ 'bootstrap' => [ 'queue', 'queueFailed' ], // ... ]
在控制台中使用
显示所有失败作业
yii queue-failed/list ╔════╤═══════════════════════════╤═════════════════╤═════════════════════╗ ║ Id │ Class │ Original Job ID │ Failed at ║ ╟────┼───────────────────────────┼─────────────────┼─────────────────────╢ ║ 1 │ app\models\jobs\FailedJob │ 123456789 │ 2022-06-06 06:14:32 ║ ╚════╧═══════════════════════════╧═════════════════╧═════════════════════╝
命令显示作业 ID、作业类、原始作业 ID 和失败时间。ID 可用于再次执行失败作业。
通过 ID 显示作业的详细信息
yii queue-failed/info ID
命令显示有关作业的附加信息(作业负载和错误)。
通过 ID 执行作业
yii queue-failed/exec ID
执行所有作业
yii queue-failed/run
通过 --class 选项按类过滤作业
yii queue-failed/run --class='app\models\jobs\FailedJob'
通过 ID 删除作业
yii queue-failed/remove ID
清除所有失败作业
yii queue-failed/clear
通过 --class 选项按类过滤作业。
注意
默认情况下,作业保存在 queue_failed
表中。您可以在配置中更改表名(您还需要在迁移中更改名称)
'queueFailed' => [ 'class' => silverslice\queueFailed\QueueFailed::class, 'tableName' => 'failed_jobs' ],
扩展默认将行为附加到保存失败作业到 queue
组件。如果您需要,可以在配置中更改队列组件名称或添加更多队列组件
'queueFailed' => [ 'class' => silverslice\queueFailed\QueueFailed::class, 'queue' => ['queue', 'queueDb'], ],
扩展根据其组件 ID 注册其自己的控制台命令。您可以随意更改它
'failed' => [ 'class' => silverslice\queueFailed\QueueFailed::class, 'queue' => ['queue', 'queueDb'], ],
然后在控制台中使用
yii failed/list