出错时停止队列

时间:2014-11-20 12:40:45

标签: laravel laravel-4 queue

我正在尝试删除错误的队列。

我尝试了以下内容:

档案:global.php

Queue::failing(function($connection, $job, $data)
{
    // Delete the job
    $job->delete();
});

但是当我的队列失败时,就像这样:

public function fire($job, $data){
    undefined_function(); // this function is not defined and will trow a error
}

然后由于某些原因不删除作业。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

从他们的user manual部分检查运行尝试次数

  

如果在处理作业时发生异常,它将自动释放回队列。

我认为您需要将最大尝试次数设置为1,因此第一次出错时作业将失败。

php artisan queue:listen --tries=1

答案 1 :(得分:1)

你可以阻止你的工作抛出异常

public function handle()
{
  try {
    //your code here
  }catch (\Exception $e){
    return true;
  }


}