目前我正在创建一个要排队的作业但由于某种原因,当在作业的failed()
方法中执行的代码抛出异常时,不会触发handle()
方法。这是Laravel中的某种错误还是我做错了什么?我的AppServiceProvider中的Queue :: failing()方法被称为
<?php
namespace App\Jobs;
use App\Models\Email;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class MyCommand implements ShouldQueue
{
use InteractsWithQueue, Queueable, SerializesModels;
protected $lead;
/**
* Create a new job instance.
*/
public function __construct($lead)
{
$this->lead = $lead;
}
/**
* Execute the job.
*/
public function handle()
{
throw new \Exception("error!");
}
/**
* The job failed to process.
*
* @param \Exception $exception
*/
public function failed(\Exception $exception)
{
\Log::critical('wooot');
}
}
在上述工作中。永远不会调用failed()方法。我们使用supervisor来保持队列运行
感谢
答案 0 :(得分:0)
看起来像是调用了failed()方法,但由于$ lead属性不公开。当我想要检索属性的内容时,我遇到了异常。