队列侦听器随机工作(与主管一起使用)

时间:2019-05-15 17:55:38

标签: laravel laravel-5 laravel-queue

因此,我正在使用主管与Laravel Redis队列一起使用,执行时它很不稳定。我的流程触发了一个事件,该事件具有排队的侦听器,该侦听器生成PDF并通过电子邮件发送。

这是排队的侦听器。几个注意事项:

  • 这是与事件关联的唯一侦听器。
  • 在触发事件之前,我立即将日志写入“触发事件”。每当事件触发时都会发生这种情况,但是我观看了队列日志,并且只看到队列条目有10%的时间出现。

工作队列条目示例

# 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

0 个答案:

没有答案