电报机器人延迟生产了吗?

2024-04-26 10:03:29 发布

您现在位置:Python中文网/ 问答频道 /正文

根据telegram botdocumentation:“该API将不允许每秒超过30条消息”,“该API将不允许每秒向超过30个用户发出批量通知”
我已经将bot连接到我的pythonweb应用程序,在那里我使用for循环,迭代订阅我的bot的用户列表,向每个用户发送消息。如果我有30多个用户,那么在循环的每次迭代之间产生大约1秒的延迟(使用sleep())以绕过上述限制是一个好主意。目前我的应用程序正在开发中,所以我无法测试它,所以有人能告诉我这是一个好的策略还是有更好的方法可用,或者我不应该使用电报机器人进行生产

更新试验后,我发现在本地机器上完成对sendMessage的每个调用都需要约0.8秒。那么,我应该关注每秒30条消息或每秒30个用户的限制吗


Tags: 方法用户api应用程序消息列表forbot
1条回答
网友
1楼 · 发布于 2024-04-26 10:03:29

使用sleep()是可以的,但它不能保证长期的良好效果

我建议您设置一个限制每秒发送30条以上消息的队列。如果您使用python-telegram-bot进行开发,下面是一个example how to implement that queue的例子

否则,您可能会遇到以下一些问题:

  • 在不属于批量的并行进程/线程/工作进程中发送超过限制的消息
  • 发送时间太长>;1000条信息(已经17分钟了)
  • 在此期间,bot无法响应常规更新的问题

等等

相关问题 更多 >