我有一个Web套接字客户端,它使用asyncio从websocket服务器接收消息。
async def web_socket(server):
async with websockets.connect(server) as websocket:
message = await websocket.recv()
t = Thread(target=message_helper.process_message,args(message))
t.start()
来自websocket服务器的消息非常快,并且无限期地运行。我想设置一个线程池,以确保我有足够的线程。
我见过的所有示例都设置了一个队列(这是一个例子:Thread Pool with Queue。我看到的示例都有一个预定义的任务数组,然后它开始使用线程池处理它们。
在我上面的例子中,我不知道如何实现这一点?由于消息每秒都会出现,我想启动一个线程来处理每条消息。当我没有预定义的数组时,有没有办法实现我正在尝试使用线程池任务?
答案 0 :(得分:0)
请run_in_executor()做什么?
async def web_socket(server):
async with websockets.connect(server) as websocket:
message = await websocket.recv()
loop.run_in_executor(None, message_helper.process_message, args(message))