crontab с wget - почему он запускается дважды? - PullRequest
15 голосов
/ 16 декабря 2010

У меня есть php-скрипт, который запускается из веб-сервиса и вставляется в БД.

crontab -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 минут для завершения без отправки ответа (он извлекает много данных из веб-служб и сохраняет их в db) .. подозреваю, что по умолчанию возникает тайм-аут или повторная попытка wget, вызывающая эту проблему.

Ответы [ 3 ]

13 голосов
/ 21 февраля 2012

В документах wget задано время чтения по умолчанию, равное 900 секундам или 15 минутам.

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

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

--read-timeout=1800
5 голосов
/ 17 декабря 2010

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

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

Я решил это с помощью / usr / bin / php

1 голос
/ 16 декабря 2010

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

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

...