2016-12-27 123 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