因此,我正在使用主管与Laravel Redis队列一起使用,执行时它很不稳定。我的流程触发了一个事件,该事件具有排队的侦听器,该侦听器生成PDF并通过电子邮件发送。
这是排队的侦听器。几个注意事项:
工作队列条目示例
# I can click "run report" button 10 times, and it will only work once
[2019-05-15 13:39:23][w7mcl9jU3b6W8h61KBnFwoJJw2R3FdNw] Processing: App\Listeners\Product\EmailPdfReport
有时,在重新启动队列后,它将运行几次,然后再次开始不稳定。但是有时候(就像现在一样),我重新启动了队列,但仍然没有任何反应。
如何调试这样的队列问题?
排队的侦听器
class EmailPdfReport implements ShouldQueue
{
/**
* Handle the event.
*
* @param object $event
* @return void
*/
public function handle($event)
{
$svc = new Reporting($event->product);
$data = $svc->run($event->user);
$pdf = \PDF::loadView('pdf.report', $data);
Mail::to($event->user->email)->send(new SendUserReport($pdf, $event->product));
}
}
编辑
laravel.log中的示例(已触发2个条目== 2个事件)
[2019-05-15 14:21:43] production.DEBUG: Running Report: 424-Product 1
[2019-05-15 14:21:56] production.DEBUG: Running Report: 423-Product 1
worker.log中的示例(仅1个条目)
[2019-05-15 14:21:44][EyEqlfgbLH50S1R4QQvXJgfJxB6ejAMJ] Processing: App\Listeners\Product\EmailPdfReport