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".
 И проверяй так же, только период несколько больше суток (а вдруг скрипт просто медленно работает)
 
 Ну и файлики эти должны сущутвовать - создай их, и чтобы скрипт мог писать в этот каталог.