Я разрабатываю плагин для WordPress, который импортирует множество данных через несколько вызовов API и сохраняет их как продукты для woocommerce.
Проблема в том, что когда в магазине сотни товаров (если не тысячи), оно начинает сказываться на длине задания импорта, что приводит к большому разнообразию тайм-аутов.Расширение импорта с помощью команды, такой как «set_time_limit (xx)», работает, но некоторые серверы все еще имеют свои собственные отказоустойчивые сейфы, которые я не думаю, что могу обойти с помощью строки кода:
mod_zfpm(63616:7f14fca1b730:0)-F030E35B: stderr: Timeout (900s) exceeded while reading from socket (application) (fastcgi.c:941)'
IЯ пытаюсь выяснить, какой метод является наиболее правильным.До сих пор я думал о следующих параметрах:
использовать "register_shutdown_function ()" при ошибке для повторного запуска импорта (вероятно, очень плохая идея)
разделить задание на цепочку небольших заданий cron (более безопасная альтернатива, но, вероятно, трудоемкая и запутанная)
Должен ли я пойти с вариантом 2 или есть более эффективные способы обработкиочень долго выполняемые задачи?
ПРИМЕЧАНИЕ. Поскольку это плагин для WP, я не могу использовать решения, предложенные во многих дублирующих потоках, так как плагин будет использоваться на многих разных серверах.