2016-04-17 4 views
4

Есть ли способ каким-либо образом переопределить вывод слушателя очереди?Переопределение вывода слушателя очереди Laravel [Laravel <= 5.2 only]

Processed: Illuminate\Queue\[email protected] не очень полезен, было бы неплохо, если бы я мог каким-то образом вывести имя фактического задания и некоторые параметры для того, что на самом деле обрабатывается.

Dug in code и WorkCommand класс использует эту строку для вывода имени задания, но мой фактический класс работы - это не то же самое задание, которое используется здесь.

$this->output->writeln('<error>['.Carbon::now()->format('Y-m-d H:i:s').'] Failed:</error> '.$job->getName());

ответ

2

Вы можете отменить вывод, регистрируя свою собственную команду с той же подписью. Когда вы вызываете php artisan queue:work, ваша команда будет иметь приоритет.

Просто сделайте команду Наследовать от Laravel-х WorkCommand и переопределить его метод writeOutput():

<?php // app/Console/Command/QueueWorkCommand.php 

namespace App\Console\Commands; 

use Illuminate\Console\Command; 
use Illuminate\Contracts\Queue\Job; 
use Illuminate\Queue\Console\WorkCommand; 

class QueueWorkCommand extends WorkCommand 
{ 
    /** 
    * Write the status output for the queue worker. 
    * 
    * @param \Illuminate\Contracts\Queue\Job $job 
    * @param bool $failed 
    * @return void 
    */ 
    protected function writeOutput(Job $job, $failed) 
    { 
     // ... 
    } 
} 

И помните, чтобы зарегистрировать его с ядром app/Console/Kernel.php.

Смежные вопросы