В Python, если я хочу, чтобы мой сервер хорошо масштабировался с точки зрения использования процессора, мне, очевидно, нужно порождать несколько процессов. Мне было интересно, что лучше (используя Twisted):
A) Процесс менеджера (тот, который содержит фактические соединения с сокетами) помещает полученные пакеты в общую очередь (из многопроцессорного модуля), а рабочие процессы извлекают пакеты из очереди, обрабатывают их и отправляют результаты обратно клиенту.
B) Процесс менеджера (тот, который содержит фактические соединения сокетов) запускает отложенный поток и затем вызывает функцию apply () в пуле процессов. Как только результат возвращается из рабочего процесса, менеджер отправляет результат обратно клиенту.
В обеих реализациях рабочие процессы используют пулы потоков, поэтому они могут работать более чем с одним пакетом одновременно (поскольку будет много запросов к базе данных).