我正在构建一个电报机器人,一开始我使用了 api 包装器示例中的结构。在 py 脚本中有一个无限循环,它轮询电报 api 以获取机器人的新消息。并一一处理每一条新消息。
while True:
for update in bot.getUpdates(offset=LAST_UPDATE_ID, timeout=10):
chat_id = update.message.chat.id
update_id = update.update_id
if update.message.text:
#do things with the message \ start other functions and so on
我现在已经预见到的是,对于某些消息\请求-我将有更长的处理时间,而其他消息,即使同时出现-也会等待。对于用户来说,这看起来像是响应延迟。这归结为一个简单的依赖关系:更多的用户聊天 = 更多的延迟。
我在想:我可以让这个主脚本bot.py
运行并检查是否有新消息,并且每次有消息到达 - 这个脚本将启动另一个脚本answer.py
来处理消息并回复。
并根据需要并行启动这些answer.py
脚本。
我还可以使用bot.py
有关发送消息的用户的参考数据将所有传入的东西记录到数据库中,然后让另一个进程处理所有新记录的数据并将其标记为已回答 - 但它应该同时处理每个新条目其他。
我不是 python 的专家,并且正在寻求一些关于如何解决这个问题的想法和指导?谢谢!