我在pythonanywhere上运行电报机器人,有时我得到错误并且机器人停止工作。我正在寻找一种方法来重新启动我的控制台作为例外 例如:
mgr.statsConn, err = sql.Open("mysql", statsConnStr)
// ......
tx, err := mgr.statsConn.Begin()
if err != nil {
LogError(FAIL_CRITICAL, DB, "Begin transaction failed:%v", err)
return err
}
defer tx.Rollback()
// ...
// multiple Exec clauses just like:
rst, err = tx.Exec(sqlStr)
if err != nil {
LogInfo("Update xxx error. Sql:%s, Error:%v", sqlStr, err)
return err
}
// ...
if err := tx.Commit(); err != nil {
LogError(FAIL_CRITICAL, DB, "Commit error:%v", err)
return err
}
答案 0 :(得分:1)
您无需重新启动控制台,只需将bot.polling(none_stop=True)
替换为bot.infinity_polling(True)
-即使出现错误“超时...”机器人正在运行的情况。
答案 1 :(得分:0)
实际上,您正在尝试再次运行该脚本。 尝试使用子进程模块再次运行它。 此外,为了防止无限循环,请记住检查调用函数的返回值。
subprocess.call(['python','script.py'])