kirchbaum-development / laravel-queue-batch-retry
一个用于批量重试失败任务的包,可以通过自定义过滤器筛选任务
Requires
- php: ^7.1 || ^8.0
Requires (Dev)
- laravel/framework: ^8.0
- laravel/legacy-factories: ^1.0
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^8.0
README
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.com 或 nathan@kirschbaumdevelopment.com 联系,而不是使用问题跟踪器。
致谢
赞助
此包的开发由 Kirschbaum Development Group 赞助,这是一家以解决问题、团队建设和社区为中心的开发商驱动型公司。了解更多 关于我们 或 加入我们!
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。