@andre7777

Как организовать процесс проверки статуса в laravel?

Необходимо раз в 5 минуту проверять статус готовности документа на стороннем ресурсе.
Таких документов может быть 1000. время проверки одного (ответа стороннего ресурса) может занимать от 5 до 30 сек.
Как только документ готов - меняем его статус и больше не проверяем.

Сейчас сделано так:
Cron раз в минуту запускает функцию, которая смотрит запись в базе - запущена проверка сейчас или нет, если запущена - ни чего не делает, если нет - делает запись что идет процесс проверки и запускает цикл проверки всех статусов по очереди (этот процесс соответственно может занять 1000*30сек = больше 8часов). По окончании цикла удаляем запись в базе, что идет проверка.

Работает конечно, но документ 851 может уже давно готов, а очередь до него дойдет не скоро.
Как правильно организовать процесс, чтобы каждый документ проверялся раз в 5 минут хотябы, при этом не перегрузить систему?
  • Вопрос задан
  • 239 просмотров
Решения вопроса 1
@vanillathunder
Использовать очередь в несколько потоков.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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