2016-12-27 127 views
3

在Laravel 5.3,在控制器中,我们可以派遣作业到作业队列是这样的:在Laravel 5.3中,如何在将作业发送到作业队列后获取作业ID?

$job = (new JobClass())->onQueue('queuename'); 
dispatch($job); 

其中使用InteractsWithQueue特质作业类,在handle功能,我们就可以得到工作ID像这样:

$this->job->getJobId(); 

但是,我想获得作业ID在我的控制器我使用dispatch($job)后。

如何获取控制器中的作业ID?

如果没有这样的功能可用,我们可以扩展dispatch辅助函数来添加这个函数吗?

回答

6

dispatch()函数将返回作业ID:

$job = (new JobClass())->onQueue('queuename'); 
$jobId = dispatch($job); 

dd($jobId); 
+0

可我知道你的搜索API文档的'dispatch'功能?我试图在'https:// laravel.com/api/5.3 /'中搜索它,但找不到它。这个功能的URL是什么? – userpal

+1

'vendor/laravel/framework/src/Illuminate/Foundation/helpers.php' – Fahmi

+0

@Baik Ho laravel 5.5它受到保护,所以无法获得工作ID是他们的一种方式,我们可以在laravel控制器中获得工作ID。 ? – usama