我正在使用Python从Telegram API为聊天机器人制作服务器代码。目前,我的程序是同步运行的,每个HTTP请求都会执行一个作业。如果我从聊天机器人发出了3个请求,那么第二个请求不会在我的程序上执行。当第一个请求尚未完成时,就会发生这种情况。
def main():
last_update_id = None
while True:
updates = get_updates(last_update_id)
if len(updates["result"]) > 0:
last_update_id = get_last_update_id(updates) + 1 // this code to get latest request api
text, chat, username = get_last_chat_id_and_text(get_updates())
print(username+" "+text)
.
.
.
//do the process//
.
.
.
.
我想让所有的请求都被执行(do process)
发布于 2019-10-15 11:10:25
为了能够处理多个请求,请尝试将//do the process//
提交给ThreadPoolExecutor
或ProcessPoolExecutor
。您可以在concurrent.futures模块中找到它们。
如果它更像是I/O处理,那么你应该可以使用线程。如果它更像是重计算,那么你会更好地使用进程。
https://stackoverflow.com/questions/58393150
复制