这里的想法 - 有一个网站,我想刮。它每10分钟更新一次,但有时会不同步。重要的是,我所刮的信息就在它更新之前。每次我查看网站时,我都可以抓取剩余时间,直到下次更新。cron作业之间的可变时间(或类似的实现)
有没有办法让一个cron作业 - 在每次迭代之后 - 我可以专门设置等待时间,然后再根据时间(t)的某个变量运行时间(t + 1)迭代?
我不是特别熟悉cron作业 - 我目前超级粗糙的实现只是使用-sleep-。不理想。
这里的想法 - 有一个网站,我想刮。它每10分钟更新一次,但有时会不同步。重要的是,我所刮的信息就在它更新之前。每次我查看网站时,我都可以抓取剩余时间,直到下次更新。cron作业之间的可变时间(或类似的实现)
有没有办法让一个cron作业 - 在每次迭代之后 - 我可以专门设置等待时间,然后再根据时间(t)的某个变量运行时间(t + 1)迭代?
我不是特别熟悉cron作业 - 我目前超级粗糙的实现只是使用-sleep-。不理想。
我遇到了同样的问题,并在抓取网站的程序中实施基本检查。 我只是让crontab调用程序,程序执行检查。 如果数据已经存在,程序就会退出。 它浪费了一点处理资源,但被证明是最可靠的解决方案。
项在crontab中:
*/10 * * * * cd /var/www/vhosts/website/scripts && /usr/bin/python scraper.py
您可以进行间隔时间短,使适合在网站上更新的窗口。
*/5 * * * * cd /var/www/vhosts/website/scripts && /usr/bin/python scraper.py
*/5每5分钟执行一次脚本,因此您不必“睡眠”程序。
我建议不要用程序/脚本来操作crontab。
您可以使用'at'命令为下次需要运行时设置新作业。
所以,如果你刮告诉你下一次更新是在7分钟内,你可以设定“在”命令来运行“现在+ 6分钟
你能给我提供更多的信息?我在'at'找不到任何文档。你的意思是用程序脚本编辑crontab吗? – Craig 2015-04-01 14:14:39
http://www.computerhope.com/unix/uat.htm – 2015-04-01 14:30:28