Могу ли я определить ограничение по времени для одной функции в PHP?
Я делаю модуль для системы электронной коммерции PHP. Эта системная база данных насчитывает 2000 продуктов. Мне нужно обновить все продукты (некоторые значения) за один день. Я не хочу обновлять все продукты один раз.
Я стараюсь обновлять каждый период 100 товаров, когда посетитель открывает какую-то страницу (подключен модуль init - header). Здесь я хочу дать ограничение по времени. Если эти 100 продуктов не обновляются в течение 20 секунд, сделайте перерыв и запишите последний обновленный идентификатор продукта в базу данных.
Как я могу это сделать? Как эта функция узнает через 20 секунд перерыв?
1 ответ
Вы можете установить ограничение по времени для всего сценария PHP. Таким образом, вы можете переместить эту функцию в отдельный скрипт, установить там ограничение по времени и запустить его как подпроцесс.
Я рекомендую использовать компонент Symfony Process (можно использовать без Symfony):
http://symfony.com/doc/current/components/process.html
Используя его, вы даже можете установить ограничение по времени из основного процесса:
http://symfony.com/doc/current/components/process.html