Длительная обработка в обработчиках с boost :: asio - PullRequest
0 голосов
/ 13 декабря 2011

Я проектирую сетевой сервер на основе boost :: asio.Мне нужно выполнить долго выполняющиеся задания обработки в обработчиках и подумать, что эту обработку следует перенести из обработчиков в отдельный пул потоков, где я мог бы лучше контролировать (например, расставлять приоритеты задач).Обработчики просто ставят новую задачу в очередь заданий.

Будет также очередь ответов, в которой ответы будут сняты и отправлены обратно клиентам.(клиент отправляет запросы синхронно)

Интересно, имеет ли это смысл или просто что-то пропустил.

1 Ответ

0 голосов
/ 15 декабря 2011

Краткий ответ - Да. Длинный ответ зависит. Вообще говоря, если вы хотите иметь более высокую сеть, вы должны минимизировать обработку, выполняемую в обработчиках, и выгружать ее в поток. Это особенно важно, если у вас есть требования к причинности для данных, которые вы получаете, поскольку async_receive не гарантирует порядок выполнения обработчиков.

...