многопроцессорная с витой - PullRequest
3 голосов
/ 07 июля 2011

Мое витое приложение получает большое количество пакетов и использует несколько потоков для обработки пакетов.Я обрабатываю пакеты в отдельных потоках, чтобы реакторный цикл мог принимать пакеты.Однако из-за GIL в действительности выполняется только 1 поток.В результате поток, в котором работает цикл реактора, отстает и теряет пакеты.

Вместо потоков я хочу использовать несколько процессов.Может кто-нибудь подсказать, пожалуйста, как мне использовать несколько процессов с витой?

Ответы [ 2 ]

3 голосов
/ 07 июля 2011

Используйте twisted.internet.reactor.spawnProcess или Ampoule для запуска подпроцессов. Затем вы можете получать стандартный вывод этих процессов так же, как и сетевые пакеты.

1 голос
/ 07 июля 2011

Вы можете использовать перспективный брокер "twisted.spread.pb" для обмена датами между несколькими процессами twistd или даже выполнения удаленного вызова.

...