kirchbaum-development/laravel-queue-batch-retry

一个用于批量重试失败任务的包,可以通过自定义过滤器筛选任务

1.2.2 2024-06-11 20:37 UTC

This package is auto-updated.

Last update: 2024-09-11 21:12:38 UTC


README

Laravel Supported Versions Actions Status MIT Licensed Latest Version on Packagist Total Downloads

Laravel 只允许你在使用 queue:retry 命令时重试一个任务或所有任务。这个包为你提供了更多选项,以便你可以批量重试失败的任务,并只筛选出你想要的任务。

安装

您可以通过 composer 安装此包。

composer require kirschbaum-development/laravel-queue-batch-retry

用法

此包提供两种不同的命令。

queue:failed:batch-retry

php artisan queue:failed:batch-retry --failed-after="2 days ago" --queue="default" --limit=10 --filter="CrawlWebsiteJob" --filter-by-exception="ModelNotFoundException"

--filter

由于 failed_jobs 表并不是一个结构化的表,所以“搜索”实际上是在 payload 条件上的 like 条件。使用此选项,根据你的记录数量,可能会非常慢,因为它需要对整个表进行全表扫描来找到结果。但愿你没有很多失败的任务。

php artisan queue:failed:batch-retry --filter="PublishDocumentJob"
php artisan queue:failed:batch-retry --filter="12234"

--exclude-filter

这与 --filter 相同,但方向相反。它会搜索所有负载,并排除参数中给出的那些。

php artisan queue:failed:batch-retry --exclude-filter="PublishDocumentJob"

--filter-by-exception

--filter 选项相同,但对 failed_jobs 表中的 exception 列。使用此选项,根据你的记录数量,可能会非常慢,因为它需要对整个表进行全表扫描来找到结果。

php artisan queue:failed:batch-retry --filter-by-exception="ModelNotFoundException"
php artisan queue:failed:batch-retry --filter-by-exception="Error when creating directory"

--failed-after

此选项筛选 failed_at 列。假设你今天由于你使用的某个服务中的一个API错误而有一批任务失败了。你可以重试所有“今天”以来失败的任务。

php artisan queue:failed:batch-retry --failed-after="today"

--failed-before

failed-after 相同,但查看之前的日期。

php artisan queue:failed:batch-retry --failed-before="yesterday"

--limit

如果您只想运行特定数量的任务。

php artisan queue:failed:batch-retry --limit=10

--dry-run

我们总是害怕搞砸事情,对吧?您可以通过运行 dry run 命令来查看将要执行的内容。

php artisan queue:failed:batch-retry --dry-run

queue:failed:batch-delete

如果您只是想清理失败的任务表,还有一个 queue:failed:batch-delete 命令,它与 queue:failed:batch-retry 命令的工作方式完全相同。您可以使用重试命令提供的相同过滤器和选项。

变更日志

请参阅 CHANGELOG 了解最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 了解详情。

安全

如果您发现任何与安全相关的问题,请通过电子邮件 luis@kirschbaumdevelopment.comnathan@kirschbaumdevelopment.com 联系,而不是使用问题跟踪器。

致谢

赞助

此包的开发由 Kirschbaum Development Group 赞助,这是一家以解决问题、团队建设和社区为中心的开发商驱动型公司。了解更多 关于我们加入我们

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。