Вопрос № 30866: Здравствуйте! Как заставить запускаться на сервере служебный скрипт с определенной периодичностью, без запросов клиента. Я в РНР новичок - только начал изучать и сразу же возникла такая проблема. Необходимо, чтобы данные базы данных обрабатывались на...
Вопрос № 30.866
Здравствуйте! Как заставить запускаться на сервере служебный скрипт с определенной периодичностью, без запросов клиента. Я в РНР новичок - только начал изучать и сразу же возникла такая проблема. Необходимо, чтобы данные базы данных обрабатывались на сервере постоянно, вне зависимости от того есть ли в данный момент запросы клиентов или нет. Заранее благодарен.
Отвечает: NeiTrinO
Здравствуйте, Тормышев Валерий Евгеньевич!
PHP здесь, вообще-то, не при чем.
Это все делает серверный демон (что-то вроде резидентного приложения в винде... ну когда оно в трее висит и делает что-либо). Называется этот демон Crontab. Только он может заставить выполнять сервер определенные дейтсвие с определенной периодичностью.
Для использования его уточните у своего хостинг-провайдера, разрешено ли Вам пользоваться этой фичей.
--------- Мы не уверены ни в чем и никогда, зато всегда уверены в обратном
Ответ отправил: NeiTrinO (статус: 5-ый класс)
Отправлен: 06.12.2005, 00:31
Отвечает: Doctor013
Здравствуйте, Тормышев Валерий Евгеньевич!
Запускать служебные программы с определенной периодичностью можно с помощью планировщика заданий в Windows или аналога под названием Cron в Unix. ПОдробнее почитать про Cron можно здесь http://linux.net.ru/node/127 .
Ответ отправил: Doctor013 (статус: 1-ый класс)
Отправлен: 06.12.2005, 09:18
Отвечает: Дмитрий Иванов
Здравствуйте, Тормышев Валерий Евгеньевич!
запускаешь crontab -e - будет VI редактор
туда пишешь твой скрипт, сцрипт должен быть с мин chmod 755. и если надо интерпретатор перед ним, синтаксис описания найдешь через man
--------- ставя оценку - подумай, может ты не все описал.
Ответ отправил: Дмитрий Иванов (статус: 7-ой класс)
Отправлен: 06.12.2005, 11:38
Отвечает: Ilya
Здравствуйте, Тормышев Валерий Евгеньевич!
Всего лишь нужен cron. Это такое серверное приложение, похожее на планировщик задач windows (вообще говоря большой вопрос кто там на кого больше похож). Для того чтобы его использовать прежде всего необходим платный хостинг, ибо на бесплатном его разумеется не дают. Руководство пользователя этой утилитой можно раздобыть либо у хостера (если он действительно приличный хостер) либо в интернете. При необходимости задавайте вопросы сюда.
p.s. а так ли необходима обработка информации в базе? обычно крон требуется для действительно серьёзных вещей, вроде репликации больших БД, каких-то серьёзных обновлений скажем большого количества цен в зависимости от курса валюты или уе или чего-то подобного. Просто если Вы чуть опишите задачу, можно будет поискать решение и попроще. Хотя что может быть проще cron-а? :)
--------- no pain - no game
Ответ отправил: Ilya (статус: 1-ый класс)
Отправлен: 06.12.2005, 11:39
Отвечает: Константин
Здравствуйте, Тормышев Валерий Евгеньевич!
Это очень просто. есть такая вещь - cron. Про нее и читайте
Если у хостера стоит cpanel, тогда еще проще. Переходите в раздел Cron jobs и там устанавливаете нужную периодичность:
* означает "каждый"
т.е. * * * * * * каждую минуту
30 * * * * * каждые полчаса
0 0 * * * * - раз в сутки
После этого - команду которая выполняется.
Это должен быть вызов php-интерпретатора из командной строки. Делается так:
/path/to/php -f /path/to/your/file.php >> /path/to/log_file
т.е. вы должны вызвать интерпретатор с параметром -f, т.е. выполнить файл и дать путь к файлу. Вывод скрипта перенаправить в /path/to/log_file и дописать к существующему содержимому
Вам остается только узнать где у хостера лежит пхп. Это или на сайте или письмо в техподдержку. Может и в phpinfo() есть, я не помню.
Ответ отправил: Константин (статус: 1-ый класс)
Отправлен: 07.12.2005, 19:07