crontab with wget - why is it running twice?
我有一个php脚本,它从webservice运行并插入到DB。
crontab -e
1 2 3 4 5 6 | ......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默认导致此问题。
wget文档的默认读取超时为900秒或15分钟。
if, at any point in the download, no data is received for more than
the specified number of seconds, reading fails and the download is
restarted
这就是为什么你看到15分钟后再次调用该文件的原因。 您可以通过添加参数和适当的秒数来指定更长的读取超时:
1 | --read-timeout=1800 |
我想我解决了自己的问题。
我的PHP需要一些时间来加载,我想wget重试或在一些默认指定时间后超时。
我使用/ usr / bin / php解决了这个问题
谁的用户的crontab是这个?
检查是否有其他用户在不同时间为您设置了cron作业并忘记了它。