Worker فرایندی است که Jobها یا پیامهای صف را دریافت و اجرا میکند، مانند ارسال ایمیل پس از درخواست کاربر.
تعداد ورکرها، زمان اجرای Job و نرخ شکست باید پایش شوند. افزایش ورکر همیشه سرعت را بیشتر نمیکند و ممکن است دیتابیس گلوگاه شود.
Worker ممکن است در میانه پردازش ایمیل متوقف شود و همان Job دوباره تحویل داده شود. Job باید با این سناریو سازگار باشد.
نمونه کوتاه
php artisan queue:work --tries=3
درک تفاوت این موضوع با صف پیام و مسیج بروکر به انتخاب راهکار مناسبتر کمک میکند.
نمونه اجرای ورکر صف لاراول
php artisan queue:work redis --tries=3 --timeout=60
Worker یک پردازش طولانیعمر است و باید با Supervisor، Systemd یا ابزار مشابه مانیتور و ریاستارت شود. Timeout، تعداد تلاش و Jobهای آیدمپوتنت جلوی خطاهای تکرار را میگیرند.