python-telegram-bot 中的 TimedOut 但已发送消息

时间:2021-07-15 09:00:15

标签: telegram-bot python-telegram-bot

我在尝试向特定电报频道发送消息时遇到以下错误:

TimedOut: Timed out
The read operation timed out

我在 python-telegram-bot 中使用的方法是 send_message

虽然我的机器人收到此错误,但它仍将消息发送到通道,并且由于我没有捕获该异常,消息中的所有数据都丢失了,但我确实需要在特定时间段后从该通道中删除我的消息.

即使超时,机器人也发送消息是否可以?如何防止这种情况再次发生或在发送后从频道中删除此类消息?

1 个答案:

答案 0 :(得分:2)

超时错误意味着 TG 没有足够快地向您的 send_message 请求发送响应。这并不一定意味着请求没有被处理——这就是消息可能仍然被发送的原因。但是,如果没有 TG 的响应,您将没有结果消息的消息 ID,将很难甚至不可能将其删除。

您可以尝试增加 PTB 等待 TG 响应的时间。这可以通过不同的方式完成:

  • 带有 timeoutsend_message 参数
  • 使用 Defaults.timeout,如果您使用的是 PTB Defaults 设置
  • 通过您传递给 request_kwargsUpdater 指定它

您可能想看看这个关于网络的 wiki page


免责声明:我目前是 python-telegram-bot

的维护者