Mār*_*dis 4 queue laravel laravel-5.2
有没有办法以某种方式覆盖队列侦听器的输出?
Processed: Illuminate\Queue\CallQueuedHandler@call 不是很有用,如果我能以某种方式输出实际的作业名称,以及实际正在处理的一些参数,那就太好了。
挖了代码,WorkCommandclass用这一行来输出job的名字,但是我实际的job class和这里使用的job不一样。
$this->output->writeln('<error>['.Carbon::now()->format('Y-m-d H:i:s').'] Failed:</error> '.$job->getName());
您可以通过使用相同的签名注册您自己的命令来覆盖输出。当您调用 时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)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
并记住在内核中注册它app/Console/Kernel.php。
| 归档时间: |
|
| 查看次数: |
954 次 |
| 最近记录: |