In Laravel ، Redis Queue هي أداة قوية تستخدم للتعامل مع المهام التي تستغرق وقتًا طويلاً وتستغرق وقتًا طويلاً دون انتظار اكتمالها. باستخدام Redis Queue ، يمكنك إدراج المهام في قائمة الانتظار مثل إرسال رسائل البريد الإلكتروني أو معالجة المهام الخلفية أو إنشاء التقارير وتنفيذها بشكل غير متزامن وتحسين أداء التطبيق وتعزيز تجربة المستخدم.
الخطوات الأساسية لاستخدامها Redis Queue في Laravel
تهيئة Redis
أولاً ، تحتاج إلى التثبيت والتهيئة Redis بتنسيق Laravel. تأكد من تثبيت Redis الحزمة عبر Composer وضبط Redis معاملات الاتصال في .env
الملف.
CACHE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
تحديد الوظائف
بعد ذلك ، تحتاج إلى تحديد الوظائف التي تريد وضعها في قائمة الانتظار. سيتم تنفيذ هذه الوظائف بشكل غير متزامن ومستقل عن المعالجة الرئيسية للتطبيق.
// Example defining a job to send an email
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Mail;
class SendEmailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $user;
public function __construct($user)
{
$this->user = $user;
}
public function handle()
{
// Handle sending an email to the user
Mail::to($this->user->email)->send(new WelcomeEmail());
}
}
ضع وظائف في قائمة الانتظار
عندما تريد أداء وظيفة ، ما عليك سوى وضعها في قائمة الانتظار باستخدام dispatch
أو dispatchNow
الوظائف:
use App\Jobs\SendEmailJob;
use Illuminate\Support\Facades\Queue;
// Put the job into the queue and perform asynchronously
Queue::push(new SendEmailJob($user));
// Put the job into the queue and perform synchronously(without waiting)
Queue::push(new SendEmailJob($user))->dispatchNow();
مهام المعالجة من قائمة الانتظار
بعد وضع المهمة في قائمة الانتظار ، تحتاج إلى إعداد Worker لتنفيذ المهام في قائمة الانتظار. Laravel يأتي مع artisan command تشغيل worker:
php artisan queue:work
سيستمع الشخص worker باستمرار وينفذ الوظائف الموجودة في قائمة الانتظار. يمكنك تكوين worker للتعامل مع عدد الوظائف ووقت الانتظار بين جولات المعالجة.
إدارة الوظائف في قائمة الانتظار
Laravel يوفر واجهة إدارة حيث يمكنك مراقبة المهام في قائمة الانتظار والتحكم فيها. يمكنك عرض عدد المهام المعلقة ووقت المعالجة وحتى إعادة محاولة المهام الفاشلة.
الاستنتاج يعد استخدام Redis Queue in Laravel طريقة فعالة للتعامل مع المهام طويلة الأمد دون تعطيل المعالجة الرئيسية للتطبيق. باستخدام Redis Queue ، يمكنك تحسين أداء التطبيق وتحسين تجربة المستخدم.