Смешать Python Twisted с многопроцессорной обработкой?

Мне нужно написать программу, подобную прокси, на Python, рабочий процесс очень похож на веб-прокси. Программа находится между клиентом и сервером, принимает запросы, отправленные клиентом на сервер, обрабатывает запрос, а затем отправляет его на исходный сервер. Конечно, используемый протокол - это частный протокол, использующий TCP.

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

Для максимальной производительности я хочу использовать многопроцессорность python (потоки имеют ограничение GIL ) разделить программу на три части (процессы). Первый процесс запускает Twisted, чтобы получать запросы, помещать запрос в очередь и немедленно возвращать успех исходному клиенту. Второй процесс берет запрос из очереди, обрабатывает запрос дальше и помещает его в другую очередь. Третий процесс принимает запрос из второй очереди и отправляет его на исходный сервер.

Я был новичком в Python Twisted, я знаю, что он управляется событиями, я также слышал, что лучше не смешивать Twisted с потоковой или многопроцессорной обработкой. Так что я не Не знаю, подходит ли этот способ или есть более элегантный способ, просто используя Twisted?

11
задан benhengx 19 April 2011 в 10:49
поделиться