如何通过代码重启pythonanywhere控制台

时间:2017-10-26 00:17:32

标签: python python-3.x telegram pythonanywhere

我在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
}

2 个答案:

答案 0 :(得分:1)

您无需重新启动控制台,只需将bot.polling(none_stop=True)替换为bot.infinity_polling(True)-即使出现错误“超时...”机器人正在运行的情况。

答案 1 :(得分:0)

实际上,您正在尝试再次运行该脚本。 尝试使用子进程模块再次运行它。 此外,为了防止无限循环,请记住检查调用函数的返回值。

subprocess.call(['python','script.py'])