Розвести їх по різних чергах і сказати воркеру, яку брати першою.
SendPasswordReset::dispatch($user)->onQueue('high');
SendNewsletter::dispatch($user); // у default
php artisan queue:work --queue=high,default
Порядок у --queue - це пріоритет: поки в high є завдання, default чекає. Лист для скидання пароля більше не стоїть за п'ятдесятьма тисячами розсилки.
Що врахувати:
- Голодування. Якщо
highніколи не порожніє,defaultне отримає жодного воркера. Надійніше дати важливим чергам окремі воркери, а не лише пріоритет. - Маршрутизація. У Laravel 13
Queue::route(SendPasswordReset::class, queue: 'high')у провайдері задає чергу для класу, тож не треба писатиonQueue()в кожному місці. - Horizon дозволяє описати супервізорів з різною кількістю процесів на чергу й балансувати їх автоматично.