Laravel 11 / Foundation\Bus Dispatchable::dispatchSync()

laravel 11 dispatchsync
23 December 2024

Explanation about the dispatchSync method in Laravel 11

In Laravel, the synchronous system and underlying processes allow you to execute heavy tasks in the background and improve the performance of your program. One of the existing methods for executing such tasks is the dispatchSync method. This method allows you to execute a task synchronously, without having it queued in the background.

Using dispatchSync means that the job will be executed immediately, and the result will return to the original code. This feature happens in situations where you might want to execute a job and wait for its response before proceeding to the next stage of your program.

The downside of this method is that you cannot benefit from the advantages of background processing; meaning that while the job is not executed, your program will remain on hold. Therefore, if your job requires significant time, it may lead to reduced program performance.

In this article, we will show you how to use dispatchSync in Laravel 11 and also provide you with a practical example. This example will involve a simple job that processes data and returns the result to the main page.

Code Example


use App\Jobs\MyJob;

$result = MyJob::dispatchSync($data);

// Using the result after executing the job
return view('result', ['result' => $result]);

Code Explanation


Using the Job Class:
By using use App\Jobs\MyJob;, we import the MyJob class to be able to use it.

Synchronous dispatching:
In the next line, we will dispatch the job with MyJob::dispatchSync($data); where $data contains the data sent to the job.

Using the result:
Finally, we store the job result in the variable $result and then pass it to the view 'result' to display the result.

FAQ

?

What does dispatchSync do?

?

Why should we use dispatchSync?

?

Can dispatchSync slow down the program?