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