嗨,我对asyncio队列有疑问。我有一个带有TCP连接的异步“服务器”,我想做一些类似队列清理器的事情。
loop = asyncio.get_event_loop()
coro = asyncio.start_server(server, '127.0.0.1', 8888, loop=loop)
server = loop.run_until_complete(coro)
print('Serving on {}'.format(server.sockets[0].getsockname()))
while True:
loop.run_until_complete(main())
并且main()是
async def main():
if queue.empty() == True:
pass
while queue.empty() != True:
item = await queue.get()
print(item)
print("queue items: ")
print(queue.qsize())
但是我不认为这是从队列执行任务的最佳方法。我想制作第二个脚本,该脚本只在队列中考虑。有什么方法可以从外部连接到我的服务器队列并进行相应的处理?
现在看起来像: 客户端->服务器=>接收任务,并将其添加到队列->使循环干净。它不是异步的,因为从逻辑上讲,我在队列中的思考永远不会超过1。
我要:
客户端->服务器=>接收任务<=外部清洁任务