【发布时间】:2016-02-20 09:28:13
【问题描述】:
我正在构建一个电报机器人,一开始我使用了 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 方面的专家,我想就如何解决这个问题寻求一些想法和指导?谢谢!
【问题讨论】:
标签: python parallel-processing telegram-bot