【问题标题】:Variable time between cron jobs (or similar implementation)cron 作业(或类似实现)之间的可变时间
【发布时间】:2015-04-01 06:05:16
【问题描述】:

这就是我的想法——我想抓取一个网站。它每 10 分钟更新一次,但有时会不同步。重要的是,我抓取的信息是在更新之前。每次我检查网站时,我都可以刮掉“剩余时间”,直到下一次更新。

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

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

【问题讨论】:

    标签: python-2.7 cron crontab cron-task


    【解决方案1】:

    我在抓取网站的程序中遇到了同样的问题并实施了基本检查。 我只是让 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。

    【讨论】:

      【解决方案2】:

      您可以使用“at”命令为下次需要运行它设置一个新作业。

      因此,如果您的爬虫告诉您下一次更新将在 7 分钟后进行,您可以将“at”命令设置为运行“现在 + 6 分钟”

      【讨论】:

      • 你能给我更多的信息吗?我找不到任何关于“at”的文档。你的意思是用程序脚本编辑 crontab?
      猜你喜欢
      • 2010-11-04
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 2013-02-05
      • 2015-06-23
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多