یه وقتایی هست ما تو پروژه یک سری پردازش های سنگین و وقت گیر داریم ، مثلا api زدن به یجا ، که مسلما چند ثانیه طول میکشه تا جوابش بیاد ، در این حین که api میزنیم ما نمیخوایم کاربر منتظر باشه و مجبورش کنیم صبر کنه ، میخوایم به بقیه کاراش ادامه بده و این api عه هم از طرف دیگه کارشو بکنه.
به این میگن پردازش های نامتقارن (asynchronous) ، یعنی دو یا چند تا پردازش دارن همزمان کار میکنن.
صف لاراول کمک میکنه برنامه ها همزمان پاسخگو باقی بمونن و کاربرا تجربه بهتری داشته باشن.
قبل از شروع شما باید یه پروژه لاراول ایجاد کنید همچنین به یک پایگاه داده هم برای ذخیره اطلاعات احتیاج دارید.
حالا باید queue worker رو راه اندازی و اجرا کنید.
1_پیکربندی و راه اندازی laravel Queue :
برای پیکربندی فایل env. رو باز کنید و متغیر 'QUEUE_CONNECTION' رو روی درایو مورد نظرتون تنظیم کنید. مثلا:
QUEUE_CONNECTION=database
2_ایجاد jobs :
توی لاراول، jobs کلاس های php هستند که وظایفی رو برای قرار دادن تو صف تعریف میکنن. با استفاده از artisan میتونید یه job جدید ایجاد کنید:
php artisan make:job ProcessEmail
3_تعریف منطق job :
حالا میتونید کلاس job رو که توی دایرکتوری `app/Jobs` ایجاد شده ویرایش کنید تا منطقشو تعریف کنید.
class ProcessEmail implements ShouldQueue{
use InteractsWithQueue, Queueable, SerializesModels;
public function __construct(){
// Constructor logic (if needed)
}
public function handle(){
// Logic to send an email
}
}
4_برای ارسال این job از دستور ()ProcessEmail::dispatch استفاده می شه.
این کد job رو به صف اضافه میکنه.
5_حالا برای راه اندازی Queue_Worker از دستور php artisan queue:work استفاده کنید.
همچنین میتونید به صف اولویت بدید که وظایف مهم تر زودتر پردازش بشن.
dispatch(new SendEmail($details))->onQueue('high')
در نتیجه با استفاده از پردازش پسزمینه با Queue، برنامه لاراول خودتون رو قویتر و کارآمدتر کنید!