2012-06-23 10 views
5

Jaki jest najlepszy sposób połączenia dwóch demonów w Pythonie?Połącz dwa demony w pytonie

Mam demona A i B. Chciałbym otrzymywać dane generowane przez B w module A (może dwukierunkowe). Oba demony obsługują wtyczki, więc chciałbym zamknąć komunikację w wtyczkach. Jaki jest najlepszy i międzyplatformowy sposób, aby to zrobić?

Znam kilka mechanizmów z rozwiązań niskopoziomowych - pamięć współdzielona (C/C++), rura linux, gniazda (TCP/UDP) itd. Oraz kilka wysokopoziomowych - kolejka (JMS, Rabbit), RPC.

Oba demony powinny działać na tym samym hoście, ale oczywiście lepszym rozwiązaniem jest abstrakcja od typu połączenia.

Jakie są typowe rozwiązania/biblioteki w pythonie? Szukam eleganckiego i lekkiego rozwiązania. Nie potrzebuję zewnętrznego serwera, tylko dwa procesy rozmawiają ze sobą.

Co należy użyć w Pythonie, aby to zrobić?

+1

Kolejka wiadomości jest najprawdopodobniej najbardziej eleganckim rozwiązaniem. – ThiefMaster

+0

Hmm jako kolejka wiadomości Rozumiem RabbitMQ/JMS, itp. Chciałbym uniknąć zewnętrznego, trzeciego demona/serwera do obsługi całej komunikacji. Poza tym komunikacja będzie naprawdę intensywna, więc może nawet jeśli kolejka jest najbardziej elegancka, myślę, że coś prostszego może być lepsze. – Simon

+1

Powiedziałbym dbus, ale jest teraz wersja systemu Windows dbus. – dav1d

Odpowiedz

0

nie jestem pewien, jak ciężki jest ruch, ale Polecam pakiet asyncore. Jest dość prosty w użyciu i opiera się na gniazdach.

Zrobiłem wzorzec poleceń z tym dawno temu. Mogę wykopać kod, jeśli jesteś zainteresowany.