【问题标题】:Laravel queue push listener - queue monitoringLaravel 队列推送监听器 - 队列监控
【发布时间】:2019-07-03 01:23:38
【问题描述】:

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

我还想在作业被推送到队列时监听一个事件。这存在吗?

我从跑步中看到:

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

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

这基本上是为了检查我的队列是否全部:

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

【问题讨论】:

  • 我还想在队列被推送到队列时监听一个事件 - 对此感到困惑。您的意思是要在作业排队时调度事件吗?
  • 抱歉,我修正了我的错字。我的意思是“在将作业推送到队列时监听事件”。我希望 laravel 可以在每次推送作业时调度一个事件(就像作业正在处理、处理或失败时一样)。如果 laravel 不这样做默认情况下,我可以为所有作业调度全局定义它吗?我知道如何在每个作业类中执行此操作,但我想确保在每次推送时默认启用它。

标签: php laravel queue laravel-queue


【解决方案1】:

对于任何想知道的人,您可以在使用 Horizo​​n 时通过侦听 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(),
        ]
    ]);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-20
    • 2018-06-20
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多