Пул потоков Python в клиенте Websocket - PullRequest
0 голосов
/ 04 мая 2018

У меня есть клиент веб-сокета, который получает сообщения от сервера веб-сокетов, используя asyncio.

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()

Сообщения с сервера веб-сокетов приходят очень быстро и работают бесконечно. Я хочу настроить пул потоков, чтобы убедиться, что у меня достаточно потоков.

Все примеры, которые я видел, настраивают очередь (вот один пример: Пул потоков с очередью . Все примеры, которые я видел, имеют предопределенный массив задач, затем он начинает обрабатывать их, используя поток бассейн.

В моем примере выше я не вижу, как я мог бы это реализовать? Поскольку сообщения приходят каждую секунду, и я хочу запустить поток для обработки каждого сообщения по мере его поступления. Есть ли способ достичь того, что я пытаюсь сделать с помощью пула потоков, когда у меня нет предопределенного массива задач ?

1 Ответ

0 голосов
/ 08 мая 2018

Будет 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))
...