crontab с wget - почему он запускается дважды?
У меня есть PHP-скрипт, который запускается из веб-сервиса и вставляется в БД.
crontab -e
...... другие задачи cron выше....... ... .. .. # Запустите test script.php на 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 ответа
Я думаю, что я решаю свой собственный вопрос.
Мой php загружается некоторое время, я думаю, wget повторяется или истекает через некоторое время по умолчанию.
Я решил это с помощью /usr/bin/php
Документы wget дают время чтения по умолчанию, равное 900 секундам или 15 минутам.
если в какой-либо момент загрузки данные не получены в течение более указанного количества секунд, чтение завершается неудачно и загрузка возобновляется
Вот почему вы увидели, что файл снова вызывается через 15 минут. Вы можете указать более длительное время чтения, добавив параметр и соответствующее количество секунд:
--read-timeout=1800
Чей это пользовательский crontab?
Проверьте, есть ли другой пользователь, для которого вы настроили работу cron в другое время, и забыл об этом.