Laravel 5.6 изменяет сообщения QueuedCommand на что-то более удобочитаемое - PullRequest
0 голосов
/ 01 сентября 2018

Итак,

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() команды ...

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

$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]

1 Ответ

0 голосов
/ 02 сентября 2018

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

Команды, естественно, имеют некоторые инструменты ведения журнала консоли, такие как error, info и comment , которые могут помочь вам в отладке:

$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.

...