以下是这个想法 - 我想要抓住一个网站。它每10分钟更新一次,但有时会失去同步。在我更新之前,我所抓获的信息非常重要。每次我查看网站时,我都可以抓住剩余的时间'直到下次更新。
有没有办法做一个cron作业 - 在每次迭代之后 - 我可以根据时间(t)迭代中的某个变量,在运行时间(t + 1)迭代之前专门设置等待的时间?
我对cron作业并不是特别熟悉 - 我目前的超级粗略实现只使用-sleep-。不理想。
答案 0 :(得分:0)
我遇到了同样的问题,并在抓取网站的程序中实施基本检查。 我只是让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。
答案 1 :(得分:0)
您可以使用'at'命令设置新作业,以便下次需要运行它。
因此,如果您的刮刀告诉您下一次更新是在7分钟内,您可以设置'at'命令运行'now + 6 minutes'