|
|
|
| Можно ли на php создать демона без крона? Т.е. так чтобы скрипт постоянно выполнялся раз в минуту не используя крон? | |
|
|
|
|
|
|
|
для: Blizard
(18.11.2011 в 13:40)
| | Нет, точно такой же надежный не получится... обычно на посещаемых порталах привязываются ко времени и используют для инициализации действия первый клик после назначенного времени. Но пока вы закроете флаг посетители могут (и часто это происходит) вам штук 20 экземпляров скрипта запустить.
Если машина подключена к Интернет, можно использовать Web-кроны, удаленные сервисы, которые дергают скрипты в назначенное время.
Если машина не подключена к Интернет, можно отключить у координирующего скрипта лимит времени исполнения и запустить бесконечный цикл с функцией sleep() и проверкой необходимости запуска внешнего кода. | |
|
|
|
|
|
|
|
для: cheops
(18.11.2011 в 13:43)
| | а что если while (1) { .... }? | |
|
|
|
|
|
|
|
для: Ильдар
(18.11.2011 в 19:13)
| | Ну да, можно, только нужны вызовы sleep(), иначе цикл будет вхолостую жрать такты процессора и нужно снять ограничение по времени работы скрипта, иначе по достижении 30 секунд, его работа будет прекращена. Ну и еще одна неприятность, память, которую использует скрипт, будет потеряна для работы сервера - cron жрет в десятки раз меньше, чем PHP, а уж тем более PHP в составе Apache-процесса. | |
|
|
|
|
|
|
|
для: cheops
(18.11.2011 в 19:21)
| | а если использовать ajax и вызывать скрипт через определенное время? | |
|
|
|
|
|
|
|
для: brys
(18.11.2011 в 19:30)
| | Это нужно, чтобы браузер не закрывался и его связь с сервером не рвалась... можно, конечно, но уж больно как-то ненадежно выглядит. | |
|
|
|