我正在尝试使用我的laravel项目发送短信用于此目的我在名为MessageController
的{{1}}中编写了函数。我正在将消息数据推送到名为sendSms
的队列和处理程序,如下所示。
SendScheduledSms
发送短信工作正常。 public function handle()
{
$sentsms = App::make('App\Http\Controllers\MessageController')->sendSms($this->post_data);
}
是已发送短信的状态。 $sentsms
,$status
和success
有两个值。如果状态为fail
,我想重新尝试发送相同的短信。我怎样才能做到这一点?
现在执行fail
时,它会删除队列。
我正在使用数据库队列。
有人可以帮忙吗?
答案 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