Forum Webscript.Ru
Программирование => PHP => Тема начата: Lion от 09 Декабря 2001, 18:56:08
-
Приведите пример, как можно сделать что бы скрипт работал только один раз в день.
-
Проверяешь был ли запущен сегодня скрипт, если нет - выполняешь его и записываешь в БД дату выполнения скрипта.
Вот вроде бы и все.
-
Лучше наоборот - сначала записывать , а потом скрипт выполнять.....
А то может несколько раз выполнится :)
Там про Flock вспоминали - так здесь это тоже в тему - надо
одноразовое выполнение.
-
Проверяешь был ли запущен сегодня скрипт
вот этот момент особенно интересует, примерчик хочеться...
-
В БД (или в файл) записывается дата последнего запуска. А в скрипте вытаскиваешь дату и сравниваешь с сегодняшним днем.
Лучше наоборот - сначала записывать , а потом скрипт выполнять.....
Да, так наверное лучше.
-
Есть такая класная функция - touch, она в разделе операций с файлами...
2 if ( touch($FileName) ) {
3 print "$FileName modification time has been changed to todays date and time";
4 } else {
5 print "Sorry Could Not change modification time of $FileName";
6 }
Ну а "filemtime -- Get file modification time"
Только чтобы было совсем правильно - надо
1) смотришь время $tm=filemtime("timestamp");
2) сравниваешь $tm < time() + сутки (в секундах)
если нет - уходим (end)
если да
3.1) rename("timestamp","timestamp2") - чтобы никто другой не поменял. (проверяешь, без ошибок ли это сделано)
Если ошибка - значет кто-то другой уже это делает, а этому скрипту не надо - уходишь. (end)
Если получилось, значит этот скрипт и должен делать всю грязную работу.... (3.2)
3.2) делаем touch("timestamp2");
3.3) ложим файлик назад rename("timestamp2","timestamp")
3.4) спокойно отрабатываем, что надо
end)
Да, если твой скриптик может недоделать это доконца и кануть влету, то сделай то же самое
для конца операции (3.5) - только файлик какой-то другой "script.completed".
И проверяй так же, только период несколько больше суток (а вдруг скрипт просто медленно работает)
Ну и файлики эти должны сущутвовать - создай их, и чтобы скрипт мог писать в этот каталог.