silverslice/yii2-queue-failed

管理 Yii 2 中的失败队列作业

安装次数: 23,273

依赖关系: 0

建议者: 0

安全: 0

星标: 4

关注者: 2

分支: 1

公开问题: 0

类型:yii2-extension

v1.0.0 2023-06-19 01:51 UTC

This package is auto-updated.

Last update: 2024-08-29 02:01:28 UTC


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