Добрый день. Есть задача реализовать такой механизм (схематично):
1. На сайте создается заявка в определенной категории
2. Необходимо найти пользователя который готов выполнить заявку из этой категории
3. Пользователю приходит уведомление что для него есть заявка и он решает выполнить или пропустить
4. Если пользователь решил пропустить то заявка должна пойти другому пользователю ждущий заявки из этой категории
Как реализовать механизм поиска пользователей для этой заявки пока кто-нибудь ее не выполнит?
На данный момент все работает так
1. Создается заявка сразу создается задача в очередях для одной заявки
2. После чего по крону выполняется эта заявка и если пользователь пропускает то повторяется все с пункта 1
Проблема в том что laravel при запуске очереди выполняет только одну задачу в минуту (крон запускается каждую минуту) и по сути если много пользователей пропускает то заявка дойдет не скоро + таких заявок очень много те процесс затягивается
сейчас в тестовом режиме в день около 20 таких заявок обрабатывается но планируется от 200 те чтобы хотя бы обрабатывались 10-20 заявок за раз
Вопрос заключается в том как поступить? желательно не прибегать к redis supervisor и тп
А зачем здесь очереди вообще? При создании заявки сразу отправляйте эту заявку к исполнителю, при отказе - к следующему. CRON'ом обрабатывайте те заявки, которые не получили ответа в течение какого-то времени. И хорош было бы посмотреть код.