【问题标题】:best practice to deploy a python script部署 python 脚本的最佳实践
【发布时间】:2021-03-15 21:24:43
【问题描述】:

我有一个部署在 azure 上的机器人脚本,它必须始终运行。这是一个 python 机器人,通过打开一个流监听器来实时跟踪 Twitter 提及。

由于与脚本不直接相关的原因(超时、连接错误等),脚本每隔一段时间就会失败。在这里搜索答案后,我发现这段代码是每次脚本失败时重新启动脚本的最佳解决方法。

#!/usr/bin/env python3.7
import os
def run_bot():
    while True:
        try:
            os.system("test_bot.py  start")
        except:
            pass
if __name__ == "__main__":
    run_bot()

我正在记录所有错误消息以了解它失败的原因,但我认为有更好的方法来实现同样的目标,我非常感谢一些提示。

【问题讨论】:

  • Stack Overflow 无意取代现有的文档和教程;本网站不是研究或编码服务。请从intro tour 重复on topichow to ask

标签: python azure logging bots


【解决方案1】:

所以这是运行脚本的错误方式,你永远在 while 循环中运行它。

更好的方法是将主脚本安排在 cron 作业中:Execute Python script via crontab

您可以安排此作业每分钟、每小时或一天中的特定时间运行一次,由您决定。

如果您希望始终运行某些东西,例如系统监视器。然后,您可以在 while True 循环中运行该部分,这很好。就像每 5 秒检查一次温度的循环写入文件并休眠 5 秒。

脚本的示例 sudo 代码:prog.py

while True:
    log_temp()
    time.sleep(5secs)

但是如果脚本失败,那么安排一些东西来重新启动脚本。不要在另一个 while 循环中启动脚本。

类似这样的:https://unix.stackexchange.com/questions/107939/how-to-restart-the-python-script-automatically-if-it-is-killed-or-dies

【讨论】:

  • 感谢您的回答,我应该补充一点,脚本必须始终运行,它是一个 python 机器人,通过打开流侦听器实时跟踪 twitter 提及。每次失败都会在同一个循环中重启
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 2017-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多