保持python电报bot的运行

时间:2018-08-02 01:50:14

标签: python server telegram-bot

我使用python和pyTelegramBotAPI api创建了一个电报机器人。问题是,当我运行漫游器超过5分钟时,它会引发错误“对等连接重置”。因此,我决定进行无限次轮询。无限轮询会每10分钟停止工作,并持续1分钟抛出:

RuntimeError: maximum recursion depth exceeded

之后,它会再运行10分钟,但会出现此错误:

    2018-08-01 21:16:27,187 (util.py:65 PollingThread) ERROR - TeleBot: "ApiException occurred, args=('A request to the Telegram API was unsuccessful. The server returned HTTP 409 Conflict. Response
 body:\n[{"ok":false,"error_code":409,"description":"Conflict: terminated by other getUpdates request; make sure that only one bot instance is running"}]',)

如果我决定发送电报,有时该机器人会做出双重回应,看来他们正在运行该机器人的两个实例,但是为什么?

有办法解决吗?也许是shell脚本通过每隔n分钟或类似的调度来终止进程。

我尝试也成功部署了heroku。

欢迎使该机器人继续运行的所有想法。这是我的投票:

def principal():
    while True:
        try:
            bot.infinity_polling(True)
            bot.polling(none_stop=True)
        except:
            time.sleep(10)


principal()

1 个答案:

答案 0 :(得分:1)

您遇到的问题似乎是pyTelegramBotAPI软件包固有的-它们不是特定于您的代码的。其他用户遇到了相同的问题:

这些问题似乎是图书馆固有的,图书馆作者似乎并未解决。最好的选择可能是使用另一个库。失败的是,一些用户报告说禁用线程可能会有所帮助。