cron作业之间的可变时间(或类似的实现)

时间:2015-04-01 06:05:17

标签: python-2.7 cron crontab cron-task

以下是这个想法 - 我想要抓住一个网站。它每10分钟更新一次,但有时会失去同步。在我更新之前,我所抓获的信息非常重要。每次我查看网站时,我都可以抓住剩余的时间'直到下次更新。

有没有办法做一个cron作业 - 在每次迭代之后 - 我可以根据时间(t)迭代中的某个变量,在运行时间(t + 1)迭代之前专门设置等待的时间?

我对cron作业并不是特别熟悉 - 我目前的超级粗略实现只使用-sleep-。不理想。

2 个答案:

答案 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'