Laravel队列推送监听器-队列监视

时间:2019-02-08 18:50:04

标签: php laravel queue laravel-queue

我正在使用JobProcessingJobProcessedJobFailed来填充队列日志表。

我也想在将作业推送到队列时监听事件。是否存在?

我从跑步中看到:

\Redis::lrange('queues:mws', 0, -1)

存在pushAt参数,但是我不确定如何在实际处理作业之前的事件中获取该参数。

从根本上来说,这是为了检查我的队列是否全部:

  • a)实际正在运行(工人尚未停止)。
  • b)作业处理时间不太长。

1 个答案:

答案 0 :(得分:0)

对于任何想知道的人,在使用地平线时,您都可以通过监听JobPushed事件来获取此信息。此事件的有效负载包含作业ID,名称,连接和队列等。

Event::listen(JobPushed::class, function(JobPushed $event){
    \Log::debug('JobPushed Event Fired ', [
        'connection' => $event->connectionName,
        'queue' => $event->queue,
        'payload' => [
            'id' => $event->payload->id(),
            'displayName' => $event->payload->displayName(),
            'commandName' => $event->payload->commandName(),
            'isRetry' => $event->payload->isRetry(),
            'retryOf' => $event->payload->retryOf(),
        ]
    ]);
});