Могу ли я определить ограничение по времени для одной функции в PHP?

Я делаю модуль для системы электронной коммерции PHP. Эта системная база данных насчитывает 2000 продуктов. Мне нужно обновить все продукты (некоторые значения) за один день. Я не хочу обновлять все продукты один раз.

Я стараюсь обновлять каждый период 100 товаров, когда посетитель открывает какую-то страницу (подключен модуль init — header). Здесь я хочу дать ограничение по времени. Если эти 100 продуктов не обновляются в течение 20 секунд, сделайте перерыв и запишите последний обновленный идентификатор продукта в базу данных.

Как я могу это сделать? Как эта функция узнает через 20 секунд перерыв?

3

Решение

Вы можете установить ограничение по времени для всего сценария PHP. Таким образом, вы можете переместить эту функцию в отдельный скрипт, установить там ограничение по времени и запустить его как подпроцесс.

Я рекомендую использовать компонент Symfony Process (можно использовать без Symfony):
http://symfony.com/doc/current/components/process.html

Используя его, вы даже можете установить ограничение по времени из основного процесса:
http://symfony.com/doc/current/components/process.html#process-timeout

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]