如何在Laravel 5.2中再次尝试排队?

时间:2016-08-22 07:02:02

标签: laravel laravel-5.2

我正在尝试使用我的laravel项目发送短信用于此目的我在名为MessageController的{​​{1}}中编写了函数。我正在将消息数据推送到名为sendSms的队列和处理程序,如下所示。

SendScheduledSms

发送短信工作正常。 public function handle() { $sentsms = App::make('App\Http\Controllers\MessageController')->sendSms($this->post_data); } 是已发送短信的状态。 $sentsms$statussuccess有两个值。如果状态为fail,我想重新尝试发送相同的短信。我怎样才能做到这一点? 现在执行fail时,它会删除队列。

我正在使用数据库队列。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

为了触发Laravel Queue的本机重试功能,您的Job app/src/main/AndroidManifest.xml方法需要在某个时刻抛出错误。

handle

如果您设置了if ($sentsms == 'fail') { throw new Exception('SMS failed to send.'); } 表,Laravel应该将作业移到那里。 请参阅Retrying failed jobs上的文档。

在控制台计划方法中设置failed_jobs标志,让Laravel自动重新运行失败的作业。

--tries