استفاده از QueueingFactory::queue() در لاراول ۱۱

laravel 11 queueingfactory queue
06 تیر 1404

آشنایی با QueueingFactory::queue() در لاراول ۱۱


در لاراول ۱۱، مفهوم صف (Queue) به عنوان یکی از ویژگی‌های مهم برای بهبود عملکرد اپلیکیشن‌ها به کار می‌رود. در واقع، صف‌ها به ما این امکان را می‌دهند که پردازش‌های زمان‌بر و سنگین را به طور غیرهمزمان (asynchronously) انجام دهیم. این یعنی می‌توانیم کارهای مختلف را در پس‌زمینه اجرا کنیم و تجربه کاربری بهتری را برای کاربرانمان فراهم کنیم.


یکی از ابزارهای قدرتمند در لاراول برای مدیریت صف‌ها، QueueingFactory است. با استفاده از QueueingFactory::queue() می‌توانید به سادگی وظایف (job) خود را در صف قرار دهید و آنها را به صورت کنترل‌شده اجرا کنید. این روش به شما کمک می‌کند تا بار کاری را به طرز بهتری مدیریت نمایید.


برای استفاده از این ویژگی، ابتدا باید اطمینان حاصل کنید که ব্যবস্থা صف شما در فایل پیکربندی config/queue.php به درستی تنظیم شده است. بعد از آن، شما می‌توانید با استفاده از متد queue()، وظایف خود را به صف اضافه کنید. این کار معمولاً در پاسخ به درخواست‌های HTTP یا در زمان‌های خاص انجام می‌شود.


در اینجا یک مثال از چگونگی استفاده از QueueingFactory::queue() را مطرح می‌کنیم. فرض کنید ما می‌خواهیم یک ایمیل را به صف افزوده و آن را در پس‌زمینه ارسال کنیم. این کار به ما کمک می‌کند که زمان بارگذاری صفحه کاهش یابد و کاربران تجربه بهتری داشته باشند.


نمونه کد


use Illuminate\Support\Facades\Queue;

// ایجاد یک وظیفه جدید و اضافه کردن آن به صف
Queue::queue(new SendEmailJob($user));

توضیحات کد


در خط اول: با استفاده از use فضای نام Queue را به کد خود اضافه می‌کنیم تا بتوانیم از آن استفاده کنیم.

در خط بعدی: با استفاده از Queue::queue() یک نمونه از SendEmailJob را ایجاد کرده و به صف می‌فرستیم. $user به‌عنوان ورودی وظیفه به آن ارسال می‌شود تا ایمیل برای کاربر خاص ارسال گردد.

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


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

؟

چرا باید از صف‌ها در لاراول استفاده کنیم؟

؟

آیا می‌توانم کارهای مختلف را به یک صف اضافه کنم؟

؟

چگونه می‌توانم وضعیت یک وظیفه در صف را چک کنم؟