Ste*_*eVg 6 laravel laravel-5.5
在Laravel 5.4之前,该dispatch()方法返回队列作业ID.
$job = (new JobClass())->onQueue('queuename');
$jobId = dispatch($job);
dd($jobId); // prints the job id
Run Code Online (Sandbox Code Playgroud)
在5.5中,它返回一个PendingDispatch对象,它似乎没有一个方法来检索作业ID.
我已经尝试过dispatch_now(),但它会立即同步执行作业,而我希望它在后台执行.
Ste*_*eVg 14
在Laravel github上打开一个问题后,解决方案是使用:
app(\Illuminate\Contracts\Bus\Dispatcher::class)->dispatch($job)
Run Code Online (Sandbox Code Playgroud)
代替
dispatch($job)
Run Code Online (Sandbox Code Playgroud)
您也可以考虑使用DispatchesJobs特征:
class MyClassName()
{
use DispatchesJobs;
....
$job = (new JobClass())->onQueue('queuename');
$jobId = $this->dispatch($job);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1589 次 |
| 最近记录: |