Задать вопрос
@mrdragon9000

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

Есть неограниченное страниц вк. Нужно постоянно контролировать на них изменения, как только на любой появляется обновление, мне нужно заносить эти обновления к себе в БД.
Думаю сделать это черед очереди Laravel-a(запустить 10 воркеров одновременно). Сделать Job, который будет проверять информацию о переданной странице ВК. При окончании работы Job-a он добавит в конец очереди свою копию, чтобы снова проверить информацию о странице. Только проблема в том, что если этот Job выполнится с ошибкой(я знаю про автоматический перезапуск неудавшихся Job-ов, но вдруг все попытки перезапуска провалятся) , он уже не перезапустит сам себя. Как решить эту проблему?
  • Вопрос задан
  • 169 просмотров
Подписаться 2 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 2
inoise
@inoise
Solution Architect, AWS Certified, Serverless
В нормальных очередях если job не был выполнен то он сам вернется в очередь, даже можно настраивать когда. Что в Laravel там из коробки я не знаю, но логика, в целом, хорошая. Хотя я бы вынес наполнение очереди в отдельный механизм по тому как страниц может стать как больше так и меньше со временем, а такой алгоритм уходит в фиксированный цикл
Ответ написан
astralo
@astralo
для "спасибо" есть кнопка [Нравится]
Почему бы не попробовать добавить хелпер проверки наличия джоба в очереди и ограничиться одним прогоном но через планировщик? Тогда точно будет кидать в конец и автоматически выбирать воркер
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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