【问题标题】:Does cron job persist/run again if the python script fails?如果 python 脚本失败,cron 作业是否会再次持续/运行?
【发布时间】:2018-03-16 20:50:53
【问题描述】:

我有一个远程 cron 作业,每 30 分钟使用 selenium 抓取数据。大约十分之一的硒脚本失败。当脚本失败时,我得到一个错误输出(各种硒错误消息)。这会导致 cron 作业停止吗? crontab 不应该在 30 分钟后再次尝试运行脚本吗?

尝试失败后,当我输入 crontab -l 时,它仍然显示我的 cron 作业。

如何确保 crontab 在 30 分钟后重试?

【问题讨论】:

  • 您是否尝试过等待并查看如果 cron 作业仍然存在?也许为测试目的设置更短的持续时间?
  • 要回答您的问题,错误来自 python 文件 - Selenium 错误或加载页面的问题。请参阅下面的答案,了解我如何解决此问题。

标签: python-3.x selenium cron


【解决方案1】:

谁在发送错误输出?如果它是 cron 守护进程,那么你的工作应该是死的;如果 selenium 进程本身正在发送邮件,那么它可能仍在运行,并且卡住了。

【讨论】:

  • 查看我上面的两个回复。感谢您的洞察力:)
【解决方案2】:

回答:我正在抓取的网站足够复杂,可以发现我正在使用 selenium,因为 cron 每 30 分钟运行一次作业。所以他们在第 4-5 次尝试后标记了我的虚拟机的 IP 地址。

我的解决方案很简单:在我使用 random.uniform 和 time.sleep 报废网站的间隔中添加随机性 - 现在我没有问题了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 2019-07-18
    • 2020-10-09
    相关资源
    最近更新 更多