|
|
|
| Здарстуйте,..
Вообщем я солкнулся со следующей проблемой.
У возникла потребность запускать один и тотже PHP скрипт для обновления базы данных бесконичное количество раз. Организовал я это запуском BASH скрипта со следующим кодом:
#!/bin/sh
while :
do
sudo -u welc /usr/bin/php -f /home/welc/public_html/US_welc/welc_updater.php
done
где welc_updater.php - скрипт обновления базы, а sudo -u welc означает, что скрипт будет запускаться из под юзера welc.
В какой то момент (немогу его словить, обычно через сутки-двое) PHP скрипт напросто зависает.
Логи ничего не выводят..:(
Вот и незнаю че это может быть :(
Посоветуйте плиз.. | |
|
|
|
|
|
|
|
для: svk1be
(29.10.2007 в 18:18)
| | А скрипт сам по себе долго выполняется? | |
|
|
|
|
|
|
|
для: cheops
(29.10.2007 в 18:42)
| | Ну около 15-20 минут.. | |
|
|
|
|
|
|
|
для: svk1be
(29.10.2007 в 18:49)
| | Может проще по cron запускать скрипт через каждые 20 минут? | |
|
|
|
|
|
|
|
для: svk1be
(29.10.2007 в 18:18)
| | бесконечный цикл грозит большой нагрузкой на сервер... | |
|
|
|
|
|
|
|
для: KPETuH
(30.10.2007 в 11:54)
| | У меня такое было, когда надо очень большой инфы переработать, сервак приостановил работу скрипта и минут через 10 начал опять его доделывать с предыдущей позиции.
Думаю грузить сервак ТАК как ты описал, бессмысленно, и не эффективно.
А для чего собственно это ты делаешь? | |
|
|
|
|
|
|
|
для: pina_
(30.10.2007 в 13:58)
| | Вообщем скрипт не очень напряжный для сервера.. Он бегает по пару сотень сервакам и соберает всякую инфу которую потом заносит в базу. Но проблема состоит в отм что он должен повторно запускаться сразу по своему завершению.. В этом и вся проблема. Так бы я его уже давно в крон добавил. И отрабатываться он может до часа в некоторых случаях, когда проблема, скажем, с роутингом (разные подсетки). Сервер он не грузит вообще, а вот по какой причине он может останавливаться.. вот это уже интерестно. | |
|
|
|
|
|
|
|
для: svk1be
(30.10.2007 в 16:20)
| | В настройках сервера есть ограничение на время выполнения сценария | |
|
|
|
|
|
|
|
для: mihdan
(30.10.2007 в 22:07)
| | Для настройки времени выполнения используйте функцию set_time_limit() | |
|
|
|
|
|
|
|
для: svk1be
(30.10.2007 в 16:20)
| | Интересно, а какую такую "всякую инфу" собирает Ваш сервер? | |
|
|
|
|
|
|
|
для: svk1be
(30.10.2007 в 16:20)
| | а почему бы не вписать цикл в сам скрипт. т.е. while(true) вписать в пхп... | |
|
|
|
|
|
|
|
для: Sobachka
(31.10.2007 в 01:45)
| | Потому что этот скрипт подключает изменяемый конфиг, который меняеться время от времени, а если я поставлю while в скрипте, то файл подключиться один раз и переменные не будут обновляться. Ну допустим эту проблему можна решить если занести конфиг в базу, то как на счет max_execution_time or memory limit.. если за один цыкл скрипт обрабатывает до 20 метров инфы.
Спс | |
|
|
|