Websocket客户端上的Python线程池

问题描述 投票:0回答:1

我有一个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。我看到的示例都有预定义的任务数组,然后它开始使用线程池处理它们。

在我上面的例子中,我看不出如何实现这个?由于消息每秒都会出现,我想启动一个线程来处理每个消息。当我没有预定义的任务数组时,有没有办法实现我尝试用线程池做什么?

python multithreading threadpool
1个回答
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))
© www.soinside.com 2019 - 2024. All rights reserved.