2016-07-01 2 views
0

Я хочу реализовать «шину», через которую могут взаимодействовать процессы python. «Шина» B должна работать как процесс python. Другие процессы Python C1, C2, ... Cn должны иметь возможность регистрироваться на шине по имени. После регистрации для C1 можно отправить сообщение на C2, передав сообщение на шину вместе с именем для C2. Затем автобус направляет сообщение в С2. C2 может получать сообщение в своем собственном объекте Queue.Связь между процессами Python

Я чувствую, что пакет многопроцессорности подходит для такой задачи, но я не знаю, как передать нужную очередь сообщений C2 в процесс BUS при регистрации, поскольку все общие объекты должны быть переданы BUS на своих создание (args). Единственная идея, которую я имею на данный момент, состоит в том, чтобы зарезервировать пул очередей сообщений и передать это в процесс BUS сначала.

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

Благодаря

+0

Как автобус в чате процессы порождали? У вас есть «основной» сценарий, который создает экземпляр шины, а затем других процессов? – Arcanefoam

ответ

0

Если вы хотите, чтобы начать все процессы (c1, c2, автобус) отдельно. Затем вы должны использовать FIFOs или Unix Sockets для связи.

Трубы и Очереди в пакете многопроцессорной, это применимо только если вы можете отправить копию трубы дочернего процесса, когда вы икру его

Смежные вопросы