如何手动进行队列重试或者怎么确定队列成功了
用的是laraval6 文档写的太模糊
现在写个回调队列,需求是请求某个地址带参数,如果请求返回为字符串success 则表示回调成功,如果不是success或者错误,则再次尝试请求,直到请求五次
文档并没有给出如何进行错误判断进行重试的 我按照该篇:问答:队列如何判断任务是成功还是失败了
写了一份代码
是否是正确的写法
class NotifyFailGetOrder implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $notify_url='';
protected $data=[];
protected $token='';//加签密钥
public $tries = 4;//重试4次,加第一次 共5次
public $backoff = 10;//十秒一次
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($notify_url,$data,$token)
{
//
$this->notify_url = $notify_url;
$this->data = $data;
$this->token = $token;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$notify_url = $this->notify_url;
$data = $this->data;
$token = $this->token;
try{
$result = send_notify_url($notify_url,$data,$token);//请求函数
if($result != 'success'){
//走这里没有抛出异常,则会完成该次队列
}else{
//走这里会重试
throw new \Exception (' 回调异常!');
}
}catch(\Exception $e){
//走这里会重试
throw new \Exception($e);
}
}
}
推荐文章: