Until Laravel 5.4, the dispatch()
method returned the queue job id.
$job = (new JobClass())->onQueue('queuename');
$jobId = dispatch($job);
dd($jobId); // prints the job id
In 5.5, it returns a PendingDispatch
object, which does not seem to have a method to retrieve the job id.
I've already tried with dispatch_now()
, but it executes the job immediately and synchronously, while I want it to be executed in the background.
After opening an issue at Laravel github, the solution was to use:
app(\Illuminate\Contracts\Bus\Dispatcher::class)->dispatch($job)
instead of
dispatch($job)