我目前正在创建一个小应用程序(在python 3.6中),并且在向服务器发送非阻塞请求时遇到一些问题。
这是我的代码:
def foo():
x = get_input_and_pre_process() # synchronous
send_non_blocking_request(x) # don't await response of the request
do_something_else(x) # synchronous
while True:
foo()
基本上情况如下:
我正在从输入中读取实时数据,一旦我对它进行了一些小的更改,我想将它发送到服务器。但是,由于我现在正在读取数据,我无法等待服务器的答案,并希望在发送请求后立即继续do_something_else()
,然后继续下一次while循环迭代。
我不期待服务器的任何特殊响应,关键是发送数据。
我阅读了一些关于使用asyncio和aiohttp进行异步编程的文章,但我不确定这是否能完成这项工作。 我还考虑过在一个新线程中执行请求,但后来我会在while循环中产生数千个新线程(我猜这也不是一个好主意)。
这样做的最佳方式是什么?