0

我正在使用 Laravel Horizo​​n 来处理排队的作业。下面是我的代码

<?php

namespace App\Jobs;

class ProcessPodcast implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $podcast;

    public function handle(AudioProcessor $processor)
    {
        // Process uploaded podcast...
        Log::channel('slack')->send('Processing ...');
    }
}

在作业处理方法中,我已经登录到松弛通道。当执行这种类型的排队作业时,我得到了松弛消息。

有时,我说 1% 到 5%,当我派出工作时ProcessPodcast::dispatch(),我没有收到 slack 消息。而且我没有得到工作显示在 Horizo​​n Failed Job 页面下。这种行为是完全随机的。很难复制。我在想:

案例 #1:Laravel 没有创建作业,因此没有执行任何作业

案例 #2:Laravel 创建了作业,但 Horizo​​n 没有运行作业

ProcessPodcast无论哪种情况,检查作业是否保存到 Redis都会非常有帮助。我认为 Redis 不可能做到这一点。

请提供有关如何调试此问题的建议。

4

0 回答 0