Непрерывная работа php-скрипта
1. Во время своей работы скрипт каждые 20 секунд устанавливает время изменения файла flag равным текущему системному времени.
2. При запуске скрипта происходит проверка: если файл flag существует и его время изменения отличается от системного меньше, чем на 21 секунду, то скрипт не запускается.
3. Скрипт запускается кроном каждую минуту.
1. Правильно ли это?
2. Как заставить скрипт делать что-либо дополнительное каждые 20 секунд, независимо от своей основной деятельности и внутренних задержек?
в принципе такой принцип тоже имеет место быть,единственное но-нужно быть уверенным что скрипт отработает быстрее минуты:)
была схожая задача, но скрипт мог работать от 2 сек до 5 часов..поэтому отказался от этой затеи.
озвучь задачу-может чем подмогну
рекомендую посмотреть в сторону утилит supervise, svc из комплекта daemon-tools. они сами выполняют всю работу по отслеживанию работы демона, поднятию его при падении и т. п.
Цитата: coroner
в принципе такой принцип тоже имеет место быть,единственное но-нужно быть уверенным что скрипт отработает быстрее минуты:)
Зачем быстрее минуты? Ведь копия скрипта, запустившись, увидит свежий флаг и сразу прекратит свою работу.
Задача проста: скрипт должен работать круглые сутки.
Цитата: squirL
рекомендую посмотреть в сторону утилит supervise, svc из комплекта daemon-tools. они сами выполняют всю работу по отслеживанию работы демона, поднятию его при падении и т. п.
Нашел http://cr.yp.to/daemontools.html Но, позволит ли какой-нибудь виртуальный хостинг использовать это? Или только VPS и выделенный?
Если скрипт уж очень критичный при написании класса делаем деструкт и устанавливаем что бы при завершении работы скрипта значение менялось на 2 например, и кроном запускаем другой скриптец проверки если 2 запустить по новой, если 1 или 0 ничего не делать.
Цитата: coroner
также можно поглядеть в сторону posix
Нашел демона на PHP Там используются правильные технические решения? Зачем так сложно?
Цитата: Fenyx
Не совсем понял задачу, зачем нужен крон... Если скрипт уж очень критичный... кроном запускаем другой скриптец
Крон нужен, чтобы запустить скрипт вновь, если его остановил администратор.
Всё внрно, по крону на минуте, таймштамп в сторонем файле. И ещё одна весчь! Утечка памяти. Следить чтоб скрипт сам себя перезапускал при превышении памяти. Можно к таймштампу подмесить PID процесса. Так работает у нас круглосуточно парсер.