@artem78

Как лучше реализовать «долгоиграющий» парсер в виде плагина под Wordpress?

Пишу WP плагин для автоматичекого добавления/обновления товаров в Woocommerce с сайта-донора. Процесс парсинга должен запускаться раз в несколько дней через wp cron и будет длится порядка 1-2 часа. Т.к. время выполнения php скриптов на сервере ограничено несколькими минутами и в связи с тем, что парсер может падать из-за ошибок, необходимо реализовать возможность выполнения работы по частям. Для этого во время работы парсера в transient-опцию пишется текущий обрабатывемый товар. При последующем запуске, работа продолжается с сохранённой в состоянии позиции. Если все товары обработаны, опция удаляется. Теперь встал вопрос как лучше реализовать повторный запуск парсера после выполнения частичной обработки. В голову приходит два варианта:
  1. При каждом запуске определить max_execution_time и назначить одиночное задание через max_execution_time + несколько секунд. Если товары закончились, то удалить это задание.
  2. Второй вариант предусматривает создание вспомогательной задачи с частотой запуска раз в 5 минут, которая в случае наличия сохранённого состояния и если парсер в данный момент не работает будет снова его запускать.


Какой по-вашему мнению наиболее оптимальный вариант для этой задачи? Возможно предложите другие варианты?
  • Вопрос задан
  • 412 просмотров
Пригласить эксперта
Ответы на вопрос 1
ruvasik
@ruvasik
https://www.bryce.ru
Я так понимаю неограниченное количество времени через set_time_limit вы выставить не можете.
В таком случае 2 вариант самый надежный, но чуть сложнее в реализации.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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