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

laravel 11 dispatchsync
03 دی 1403

توضیح درباره روش dispatchSync در لاراول ۱۱

در لاراول، سیستم صف و کارهای پس‌زمینه به شما اجازه می‌دهند که وظایف سنگین را در پس‌زمینه اجرا کرده و بهبود عملکرد برنامه خود را تجربه کنید. یکی از روش‌های موجود برای اجرای چنین وظایفی، روش dispatchSync است. این متد به شما این امکان را می‌دهد که یک کار را به صورت همزمان، بدون اینکه در صف قرار بگیرد، اجرا کنید.

استفاده از dispatchSync به این معناست که کار به محض فراخوانی اجرا می‌شود و بلافاصله نتیجه آن به کد اصلی برمی‌گردد. این ویژگی زمانی مفید واقع می‌شود که بخواهید یک کار را اجرا کنید و منتظر بمانید تا جواب آن را بگیرید و سپس به مراحل بعدی برنامه‌تان بروید.

لاک‌چری بودن این روش این است که شما از مزایای صف استفاده نمی‌کنید، یعنی تا زمانی که کار اجرا نشده است، برنامه شما منتظر می‌ماند. بنابراین، اگر کار شما به زمان زیادی نیاز دارد، ممکن است باعث کند شدن عملکرد برنامه گردد.

در این مقاله، ما به شما نشان خواهیم داد که چگونه می‌توانید از dispatchSync در لاراول ۱۱ استفاده کنید و همچنین یک مثال عملی به شما ارائه می‌دهیم. این مثال شامل یک کار ساده خواهد بود که اطلاعات را پردازش می‌کند و نتیجه را به صفحه اصلی برمی‌گرداند.

نمونه کد


use App\Jobs\MyJob;

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

// استفاده از نتیجه پس از اجرای کار
return view('result', ['result' => $result]);

توضیح کد


استفاده از کلاس Job:
با استفاده از use App\Jobs\MyJob;، ما کار MyJob را وارد می‌کنیم تا بتوانیم از آن استفاده کنیم.

فراخوانی dispatchSync:
در خط بعدی، ما کار را با MyJob::dispatchSync($data); فراخوانی می‌کنیم که اینجا $data داده‌هایی است که به کار ارسال می‌شود.

استفاده از نتیجه:
در آخر، ما نتیجه کار را در متغیر $result ذخیره می‌کنیم و سپس به نمای 'result' منتقل می‌شویم تا نتیجه را نمایش دهیم.

سوالات متداول

؟

dispatchSync چه کار می‌کند؟

؟

چرا باید از dispatchSync استفاده کنیم؟

؟

آیا dispatchSync عملکرد برنامه را کند می‌کند؟