Websocket客户端上的Python线程池

时间:2018-05-04 20:16:19

标签: python multithreading threadpool

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

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

1 个答案:

答案 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))