我有以下示例,该示例使用zmq套接字工作,该套接字将数据作为协程输入并传递到运行aiohttp客户端的协程。我正在简化代码:
@asyncio.coroutine
async def rcv(addres, msgq):
init_stuff
while True:
msg = await zmq.recv()
msg.put_nowait(msg)
@asyncio.coroutine
async def send(api, msgq):
client = aiohttp.ClientSession(api, ...)
while True:
msg = await msgq.get()
resp = await client.post(api, wrap(msg))
正如我所说的那样,我想要的是从 queue.Queue 或 asyncio的 Queue 读取的rcv()的等效项。队列。
如果能直接放入 msgq ,我会很高兴。但是,在我尝试过的每条路径上,都从未等待过某个版本的队列,或者使用 queue.Queue 时,我只是阻塞了。
关于 asyncio 我有些不了解。而且,似乎那里有些例子并没有真正起作用。也就是说,它们会得到相同类型的未 awaited 错误。所以,我也许很困惑。
我希望澄清一下。如果您能解释,我在解释的同时也不会取笑我。谢谢