Я использую Laravel Horizon для обработки заданий в очереди. Ниже мой код
<?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 ...');
}
}
В методе обработки заданий у меня есть регистрация в слабом канале. Когда этот тип заданий в очереди выполняется, я получаю слабый msg.
Иногда я говорю от 1% до 5%, когда я отправил задание ProcessPodcast::dispatch()
, я не получил сообщение об отсутствии времени. И я не нашел работу на странице Horizon Failed Job. Это поведение совершенно случайно. Это очень трудно воспроизвести. Я думаю, что:
Случай № 1: Laravel не создал задание, поэтому задание не выполняется
Случай №2: Laravel создал задание, но Horizon его не запустил
В любом случае было бы очень полезно проверить, сохранено ли задание ProcessPodcast
в Redis. Я не думаю, что это возможно с Redis.
Дайте рекомендации по отладке этой проблемы.
php artisan queue work
илиphp artisan horizon
? - person Clément Baconnier   schedule 24.07.2019horizon:123
(123 — идентификатор задания). Мне нужно зайти внутрь каждого задания (в Redis) и заглянуть внутрь файлаProcessPodcast
. Это невозможно сделать вручную, учитывая количество заданий в очереди в минуту. - person Michael Nguyen   schedule 24.07.2019redis-cli monitor | grep -E ' "ProcessPodcast" '
Я не думаю, что это вам сильно поможет, но это единственное решение, которое я имею в виду, чтобы увидеть, эффективно ли задание переносится на Redis. - person Clément Baconnier   schedule 24.07.2019