@devmailer

Как реализовать выполнение задач в laravel?

Добрый день. Есть задача реализовать такой механизм (схематично):
1. На сайте создается заявка в определенной категории
2. Необходимо найти пользователя который готов выполнить заявку из этой категории
3. Пользователю приходит уведомление что для него есть заявка и он решает выполнить или пропустить
4. Если пользователь решил пропустить то заявка должна пойти другому пользователю ждущий заявки из этой категории

Как реализовать механизм поиска пользователей для этой заявки пока кто-нибудь ее не выполнит?

На данный момент все работает так
1. Создается заявка сразу создается задача в очередях для одной заявки
2. После чего по крону выполняется эта заявка и если пользователь пропускает то повторяется все с пункта 1

Проблема в том что laravel при запуске очереди выполняет только одну задачу в минуту (крон запускается каждую минуту) и по сути если много пользователей пропускает то заявка дойдет не скоро + таких заявок очень много те процесс затягивается
сейчас в тестовом режиме в день около 20 таких заявок обрабатывается но планируется от 200 те чтобы хотя бы обрабатывались 10-20 заявок за раз

Вопрос заключается в том как поступить? желательно не прибегать к redis supervisor и тп

Извините за сложное объяснение =)
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Welaurs
А зачем здесь очереди вообще? При создании заявки сразу отправляйте эту заявку к исполнителю, при отказе - к следующему. CRON'ом обрабатывайте те заявки, которые не получили ответа в течение какого-то времени. И хорош было бы посмотреть код.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы