Долгосрочный сценарий - PullRequest
       1

Долгосрочный сценарий

0 голосов
/ 07 сентября 2018

Я разрабатываю плагин для 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Я пытаюсь выяснить, какой метод является наиболее правильным.До сих пор я думал о следующих параметрах:

  1. использовать "register_shutdown_function ()" при ошибке для повторного запуска импорта (вероятно, очень плохая идея)

  2. разделить задание на цепочку небольших заданий cron (более безопасная альтернатива, но, вероятно, трудоемкая и запутанная)

Должен ли я пойти с вариантом 2 или есть более эффективные способы обработкиочень долго выполняемые задачи?

ПРИМЕЧАНИЕ. Поскольку это плагин для WP, я не могу использовать решения, предложенные во многих дублирующих потоках, так как плагин будет использоваться на многих разных серверах.

1 Ответ

0 голосов
/ 08 сентября 2018

Я все еще новичок в php, но однажды я столкнулся с чем-то вроде этого, но ситуация была не совсем такой, используемое решение было

1) размещение данных в формате JSON.

2) это была база данных sql, запросы были сделаны с помощью Ajax

3) запросы были сделаны в наборах в зависимости от количества данных, которые необходимо отобразить

4) дополнительный периметр в запросе заставил его вернуть все данные со смещением, тогда, если данные возвращаются, смещение увеличивается, и выполняется другой запрос, и второй набор возвращаемых данных добавляется к первому набору

5) при асинхронном обновлении массива данных подключается прослушиватель событий JavaScript для перезагрузки отображения при изменении данных

Хотя этот ответ не решит вашу проблему, я надеюсь, что он даст вам представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...