2016-04-17 14 views
4

キューリスナーの出力を何とかオーバーライドする方法はありますか?Laravelキューリスナー出力を上書きする[Laravel <= 5.2のみ]

Processed: Illuminate\Queue\[email protected]実際に処理されているものの実際のジョブ名といくつかのパラメータを何らかの形で出力できればいいです。

コード内のDug、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に登録することを忘れないでください。