2010-12-16 2 views
13

У меня есть php-скрипт, который запускается из webservice и вставляется в DB.crontab с wget - почему он работает дважды?

кронтаб -e

 
......other cron tasks above....... 
... 
.. 
.. 
# Run test script.php at 1610 
10 16 * * * /usr/bin/wget -q -O /home/username/my_cronjobs/logs/cron_adhoc http://localhost/project/script.php 

По-видимому, в 16:10, этот скрипт запускается в два раза! 16:10:01 и 16:25:02

Это что-то не так и нужно делать с помощью wget ?? Или я установил расписание на работу cron неправильно?

Когда я запустить http://localhost/project/script.php из браузера, он будет работать только один раз ..

Любая идея относительно этой проблемы?

Я тестировал, нет других пользователей, выполняющих ту же работу ... Я подозреваю, как работает wget.

Как мой скрипт требуется как минимум 20 минут для завершения без отправки ответа (он вытаскивает много данных из webservicces и сохраняет в db). Подозреваю, что по умолчанию возникает ошибка или wget по умолчанию, вызывающая эту проблему.

+0

Очевидный вопрос: вы пробовали работать в командной строке? – 2010-12-17 04:02:04

ответ

5

Я думаю, что решаю свой вопрос.

На мой php требуется некоторое время для загрузки, я думаю, wget-повторы или тайм-аут после определенного установленного по умолчанию времени.

я решил его с помощью/USR/бен/PHP

1

Чей пользовательский crontab это?

Проверьте, есть ли другой пользователь, для которого вы создали работу cron в разное время и забыли об этом.

+0

Я только установил один, и никакие другие пользователи не установили это задание, используя wget – flyclassic 2010-12-16 08:43:26

13

The wget docs дают по умолчанию для чтения и ожидания 900 секунд или 15 минут.

, если в любой момент загрузки данных не получено в течение более чем заданное количество секунд, чтение терпит неудачу и загрузка перезапущен

Вот почему вы видя файл снова вызывается через 15 минут. Вы можете указать более длительный тайм-аут, добавив параметр и соответствующее количество секунд:

--read-timeout=1800 
Смежные вопросы