我有一个从 web 服务运行并插入到数据库的 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 http://localhost/project/script.php从浏览器,它只会运行一次..
关于这个问题有什么想法吗?
我已经测试过,没有其他用户运行相同的作业...我怀疑 wget 的工作方式。
由于我的脚本需要至少 20 分钟才能完成而不发回响应(它从 webservices 提取大量数据并保存到数据库)..怀疑默认情况下 wget 超时或重试导致此问题。
wget 文档 http://www.gnu.org/software/wget/manual/wget.html给出默认的读取超时时间为 900 秒,即 15 分钟。
如果在下载过程中的任何一点都没有收到超过
指定秒数,读取失败,下载
重新启动
这就是您在 15 分钟后看到该文件再次被调用的原因。您可以通过添加参数和适当的秒数来指定更长的读取超时:
--read-timeout=1800
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)