Laravel队列推送监听器-队列监控
Laravel queue push listener - queue monitoring
我正在使用 JobProcessing
、JobProcessed
和 JobFailed
来填充队列日志 table。
当作业被推送到队列时,我还想监听一个事件。这个存在吗?
我从运行看到:
\Redis::lrange('queues:mws', 0, -1)
存在 pushAt 参数,但我不确定如何在实际处理作业之前的事件中获取此参数。
这基本上是为了检查我的队列是否全部:
- a)其实运行(工人们还没停)
- b) 作业处理时间不会太长。
对于任何想知道的人,您可以在使用 horizon 时通过侦听 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(),
]
]);
});
我正在使用 JobProcessing
、JobProcessed
和 JobFailed
来填充队列日志 table。
当作业被推送到队列时,我还想监听一个事件。这个存在吗?
我从运行看到:
\Redis::lrange('queues:mws', 0, -1)
存在 pushAt 参数,但我不确定如何在实际处理作业之前的事件中获取此参数。
这基本上是为了检查我的队列是否全部:
- a)其实运行(工人们还没停)
- b) 作业处理时间不会太长。
对于任何想知道的人,您可以在使用 horizon 时通过侦听 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(),
]
]);
});