Вопрос, как в Laravel не дублировать очередь? Т.е. Есть определённая работа, которая добавляется в очередь, но как её не дублировать, если она уже стоит в очереди? В документации ответа не найдено...
С этим может помочь модуль mbm-rafal/laravel-single-dispatch
Установка:
$ composer require mbm-rafal/laravel-single-dispatch
$ composer update
Создаем файл миграции:
$ php artisan vendor:publish --provider="MBM\Bus\BusServiceProvider" --force
запускаем миграцию
$ php artisan migrate
config/app.php
'providers'=> [
\MBM\Bus\BusServiceProvider::class,
...
]
Добавляем в app/Providers/AppServiceProvider.php
public function boot()
{
Queue::after(function (JobProcessed $event) {
app(\MBM\Bus\Dispatcher::class)->unregister($event->job);
});
Queue::failing(function (JobFailed $event) {
app(\MBM\Bus\Dispatcher::class)->unregister($event->job);
});
...
}
Источник: https://github.com/mbm-rafal/laravel-single-dispatch
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости