Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: cron
 
 автор: Blizard   (14.02.2009 в 18:38)   письмо автору
 
 

есть файл в корне dvig.php, не знаю как из "крона" запускать его раз в 5 секунд, там есть самое меньшее только раз в минуту, возможно перед самим адресом скрипта что-то поставить типа sleep или чего-то вроде этого. чтобы он всетаки запускался каждые 5 секунд? или может быть подскажите как запускать скрипт скажем использую C++ демона например?

  Ответить  
 
 автор: Blizard   (14.02.2009 в 20:10)   письмо автору
 
   для: Blizard   (14.02.2009 в 18:38)
 

[поправлено модератором]

по cron`у:

сделал так


ignore_user_abort(); 
set_time_limit(0); 
$interval=5;
do{
   //тут код
   sleep($interval); 
}while(true);


но не работает, я подозреваю, что на сервере отключены ignore_user_abort(); и/или set_time_limit(0);

вопрос - подскажите как и где разрешить эти функции?

  Ответить  
 
 автор: Trianon   (14.02.2009 в 20:23)   письмо автору
 
   для: Blizard   (14.02.2009 в 20:10)
 

Эти функции ничего такого не решат.
код лишь заставит бесконечный процесс постоянно спать, просыпаясь каждые 5 секунд, ничего полезного не делая.

[поправлено модератором]

  Ответить  
 
 автор: Trianon   (14.02.2009 в 20:21)   письмо автору
 
   для: Blizard   (14.02.2009 в 18:38)
 

Собственно никакие планированные задания не требуется запускать так часто.
Их и раз в минуту-то запускать обычно не нужно. Поэтому и средств нет.
Если происходят какие-то критические события чаще этого интервала, то обработку надо вешать на них самих.
А функциональные параметры, зависящие от времени, можно и аналитически рассчитать.
Это по первому вопросу.

  Ответить  
 
 автор: Blizard   (14.02.2009 в 21:45)   письмо автору
 
   для: Trianon   (14.02.2009 в 20:21)
 

Trianon, я привел лишь кусок кода. который мне заменит cron, там где написано //тут код. там код на открытие и обновления файла, я не могу запускать его от каждого юзера потому что если файл перезаписывает один пользователь и этот же файл начинает перезаписывает другой пользователь. то в момент когда первый сотрет этот файл но еще не запишет заново, а второй считает в массив пустой файл и тогда в итоге второй пользователь файл заменит на пустой. Я думаю вы понимаете о чем я. Т.е. боюсь один файл на перезапись давать всем после каждого их действия. Поэтому чтобы больше приблизится к online обновление в 1 минуту мне не подходит, нужно сделать каждые 5 секунд и не могу найти php.ini на сервере.
А по вопросу помог ли я кому-то --- нет, т.к. уровень знаний не позволяет.. поэтому я тут и прошу помощи у более грамотных программистов.

  Ответить  
 
 автор: Trianon   (14.02.2009 в 22:01)   письмо автору
 
   для: Blizard   (14.02.2009 в 21:45)
 

> я не могу запускать его от каждого юзера потому что если файл перезаписывает один пользователь и этот же файл начинает перезаписывает другой пользователь. то в момент когда первый сотрет этот файл но еще не запишет заново, а второй считает в массив пустой файл и тогда в итоге второй пользователь файл заменит на пустой. Я думаю вы понимаете о чем я.

Смотрите функцию flock()

Вообще же использование БД обычно позволяет подобного рода сложности обойти.

  Ответить  
 
 автор: Blizard   (14.02.2009 в 22:20)   письмо автору
 
   для: Trianon   (14.02.2009 в 22:01)
 

БД не использую, т.к. подключения к ней каждую секунду думаю не есть хорошо, т.к. юзеров будет много и действий от них тоже будет много, да и с точки зрения безопасности мне кажется что файлы надежнее, но возможно и ошибаюсь..

будет ли работать flock() во freebsd?

и еще -- если юзер не может открыть запертый файл то скрипт будет дожидаться его разблокировки или нужно писать в случае false повторную попытку через какое-то время?

  Ответить  
 
 автор: Trianon   (14.02.2009 в 22:23)   письмо автору
 
   для: Blizard   (14.02.2009 в 22:20)
 

цикл . Засыпание на секунду и повторная попытка.

будет ли работать flock() во freebsd?
Ответы на такие вопросы замечательно получаются путем несложного эксперимента.

Относительно БД Вы неправы абсолютно. Ну да дело Ваше.

  Ответить  
 
 автор: Blizard   (14.02.2009 в 22:33)   письмо автору
 
   для: Trianon   (14.02.2009 в 22:23)
 

спасибо за советы, ответы и помощь! я думаю flock() это действительно то что мне нужно

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования