我使用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()
答案 0 :(得分:1)
您遇到的问题似乎是pyTelegramBotAPI软件包固有的-它们不是特定于您的代码的。其他用户遇到了相同的问题:
这些问题似乎是图书馆固有的,图书馆作者似乎并未解决。最好的选择可能是使用另一个库。失败的是,一些用户报告说禁用线程可能会有所帮助。