问答 / 0 / 7 / 创建于 1年前
RT: Laravel 队列,如果在handle 里面有return;还会重新尝试执行吗,这个语句算是成功还是失败了
虽然他有return 返回值 但是队列到最后没有用到这个返回值 所以返回值不会影响队列 只有异常会影响 在call方法外有一个try 会捕捉到这个异常 就会进行重试
如果碰到try 捕捉不到的错误 就会到 retry_after 这个时间后重试第二次 如果有设置重试次数的话我是基于redis驱动来分析的
@laravelphp_game retry_after(重试时间 ) 这个是配置的key 在queue.php里面配置 这个是用于超时之后重试或者捕捉不到错误的时候 不是正常走完流程的 被中断了 原理是它在运行这个任务的时候 就会先把这个任务丢到reserved(保留)队列 防止就是为了防止这种极端情况丢失任务 然后到这个时间之后就会重新丢回到队列运行
release()是释放 重新放到队列 需要与tries一起用 如果你没有配置重试 就会被记录到失败队列里面去
放下代码呢?无代码说啥?
算执行成功,不会再次执行这个任务。如果你想让它进入重试逻辑,可以抛出异常。
我要举报该,理由是:
虽然他有return 返回值 但是队列到最后没有用到这个返回值 所以返回值不会影响队列 只有异常会影响 在call方法外有一个try 会捕捉到这个异常 就会进行重试