Laravel 5.6 меняет сообщения QueuedCommand на что-то более читаемое

Так,

a Я впервые пытаюсь использовать класс Commands, я хочу сделать сообщения очереди более читабельными, чем [2018-09-01 17:57:47][276] Processing: Illuminate\Foundation\Console\QueuedCommand

Итак, я сделал следующее;

Я зарегистрировал команду ConvertRecording с protected $signature = 'recording:convert {recording_id}'; и protected $description = 'Convert a recording from mkv to mp4 using an recording id and making use of ffmpeg';. У нее пустой конструктор, поскольку мне не нужно передавать ему объект ... А метод handle просто имеет рабочий код и несколько команд $this->log() ...

Теперь, когда я вызываю команду artisan, я использую следующий код:

$exitCode = Artisan::queue('recording:convert', [
    'recording_id' => $recording_id
]);

И он добавляется в очередь, но я получаю только такие сообщения:

[2018-09-01 17:57:47][276] Processing: Illuminate\Foundation\Console\QueuedCommand
[2018-09-01 17:58:16][276] Processed:  Illuminate\Foundation\Console\QueuedCommand

Как я мог его поменять на что-то вроде [2018-09-01 17:58:16] Procesing: Video with ID [video ID here]

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
0
160
1

Ответы 1

Возможно, вы хотите сделать что-то с помещенными в очередь командами, для чего они на самом деле не предназначены. То, что вы видите в своих журналах, - это именно то, что должно делать задание - то есть сообщать, когда оно начинается и когда оно завершено (или не удалось). Это команда, в которой выполняется полезная работа, и поэтому весь ваш вывод и ведение журнала должны выполняться там.

Команды, естественно, имеют некоторые инструменты ведения журнала консоли, такие как ошибка, информация и комментарий, которые могут помочь вам в отладке:

$this->error('This is an error and will appear highlighted in the console');
$this->info('This is information');
$this->comment('This is a comment');

Однако их использование в производственной среде может не сработать, поскольку ваши работники очереди не будут консолью для входа в систему (я могу ошибаться, поскольку я никогда не пытался искать).

Я рекомендую просто создать специальный файл журнала для ваших команд с помощью ServiceProvider.

Было бы здорово, если бы в очереди отображались определенные сообщения, так как я хотел бы дать (в процессе производства) обратную связь через эту консоль ... но мне придется углубиться в это, я думаю

Robin 02.09.2018 00:38

Я думаю, что это может быть невозможно, поскольку ваши очереди обычно работают под управлением процесса, который может не иметь консоли для входа. Но я недостаточно знаком с работой ОС, чтобы заявить об этом прямо. Если вам нужен вывод в реальном времени, то, возможно, здесь вам поможет функция Broadcast Laravel.

Jason 02.09.2018 00:55

Другие вопросы по теме