Search code examples
laravellaravel-5.5

In Laravel 5.5, how to get the Job ID after we dispatch a job to the job queue?


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.


Solution

  • After opening an issue at Laravel github, the solution was to use:

    app(\Illuminate\Contracts\Bus\Dispatcher::class)->dispatch($job)
    

    instead of

    dispatch($job)