По умолчанию нужно сделать ничего. На CLI дефолтное значение таймлимита - 0. Правда я на практике сталкивался с обычными 30 и приходилось просто ограничивать кол-во циклов(задача по костыльному импорту товаров по 1), сохраняя метку последнего выполненного, чтобы следующий запуск начать с нужного места.
Настройки apache при выполнении cli по крону никак не влияют.
В нынешней ситуации, кмк, можно рассчитывать на то, что у клиента время выполнения cli никак не ограничено. У меня, по крайней мере, пока не было жалоб на таймауты.
Андрей Годин и Павел Макаров делали, кажется, "тяжелые" cli-контроллеры. Либо для каких-то выгрузках по API, либо для работы с VK. Кажется.
Нужно обязательно при старте делать самопроверку не запущена ли вторая копия. Иначе крон поставит раком хостинг. И еще советую в настройках плагина делать чекбоксик который прерывает выполнение на старте. Типа предохранителя. Причем читать этот параметр нужно напрямую из базы т.к. настройки плагинов кешируются.
я в таких случаях сохраняю текущее состояние работы скрипта минус какой-то небольшой интервал. и крон раз в 5 минут. в итоге даже при таймауте скрипт продолжает работу с того места, где его оборвали.
7 ответов
По умолчанию нужно сделать ничего. На CLI дефолтное значение таймлимита - 0. Правда я на практике сталкивался с обычными 30 и приходилось просто ограничивать кол-во циклов(задача по костыльному импорту товаров по 1), сохраняя метку последнего выполненного, чтобы следующий запуск начать с нужного места.
По-умолчанию да, но часто еще есть настройки apache и другие факторы, которые обрубают долгие скрипты.
А как делаете следующий запуск? По крону? А если крон раз в час настроен?
Настройки apache при выполнении cli по крону никак не влияют.
В нынешней ситуации, кмк, можно рассчитывать на то, что у клиента время выполнения cli никак не ограничено. У меня, по крайней мере, пока не было жалоб на таймауты.
Андрей Годин и Павел Макаров делали, кажется, "тяжелые" cli-контроллеры. Либо для каких-то выгрузках по API, либо для работы с VK. Кажется.
Точно? Просто документация предупреждает: http://php.net/manual/en/info.configuration.php#in...
А если совсем тяжелые операции (минут на 20), то не сильно ли они затормозит обработку всех остальных запросов?
Нужно обязательно при старте делать самопроверку не запущена ли вторая копия. Иначе крон поставит раком хостинг. И еще советую в настройках плагина делать чекбоксик который прерывает выполнение на старте. Типа предохранителя. Причем читать этот параметр нужно напрямую из базы т.к. настройки плагинов кешируются.
Я сталкивался с прерыванием cli на timeweb. А так то да. На нормальном хостинге скрипт работает до морковкина заговения.
я в таких случаях сохраняю текущее состояние работы скрипта минус какой-то небольшой интервал. и крон раз в 5 минут. в итоге даже при таймауте скрипт продолжает работу с того места, где его оборвали.