php失败重试,重试执行失败的队列任务

重试执行失败的队列任务

由 学院君 创建于2周前, 最后更新于 2周前

版本号 #1

251 views

0 likes

0 collects

失败队列任务重试

Laravel 消息队列支持对执行失败的任务进行重试(详见 Laravel 队列文档处理失败的任务部分),执行失败的任务会被存储在 failed_jobs 数据表中,你需要运行如下 Artisan 命令创建这张数据表:

php artisan queue:failed-table

php artisan migrate

其表结构如下所示:

f285bbcec9d20eb6afcc4529c28c48fc.png

其中包含了队列驱动、队列名称、以及序列化的任务类实例,通过这些信息可以反序列化出队列任务进行重试。

你可以运行 queue:retry 命令通过指定任务 ID 来重试对应的队列任务(ID 放置在命令最后,ID 值就是 failed_jobs 数据表对应记录的 id 字段值):

php artisan queue:retry 300

指定最大尝试次数

但是这样太被动了,也不方便运维,取而代之的,你可以在启动队列处理器进程时通过 --tries 参数指定是否对失败任务进行重试,以及最大尝试次数(含第一次运行,所以真正的重试次数等于该参数值减一):

php artisan queue:work --tries=3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值