2012-06-23 6 views
5

Qual è il modo migliore per connettere due demoni in Python?Connetti due daemon in python

Ho daemon A e B. Mi piacerebbe ricevere i dati generati da B nel modulo di A (forse bidirezionale). Entrambi i demoni supportano i plugin, quindi mi piacerebbe chiudere la comunicazione nei plugin. Qual è il modo migliore e multipiattaforma per farlo?

Conosco pochi meccanismi da soluzioni di basso livello: memoria condivisa (C/C++), pipe linux, socket (TCP/UDP), ecc. E pochi file di coda di alto livello (JMS, Rabbit), RPC.

Entrambi i daemon devono essere eseguiti sullo stesso host, ma ovviamente un approccio migliore è quello di astrarre dal tipo di connessione.

Quali sono le soluzioni/librerie tipiche in python? Sto cercando una soluzione elegante e leggera. Non ho bisogno di server esterni, solo due processi che parlano tra loro.

Cosa dovrei usare in Python per farlo?

+1

Una coda di messaggi è molto probabilmente la soluzione più elegante. – ThiefMaster

+0

Hmm come coda messaggi Capisco RabbitMQ/JMS, ecc. Vorrei evitare il terzo daemon/server esterno per gestire l'intera comunicazione. Inoltre la comunicazione sarà molto intensa, quindi forse anche se la coda è il modo più elegante, penso che qualcosa di più semplice potrebbe essere migliore. – Simon

+1

Direi dbus, ma ora c'è la versione Windows di dbus. – dav1d

risposta

0

io non sono sicuro di come pesante è il traffico, ma Vorrei raccomandare il pacchetto asyncore. È abbastanza semplice da usare e si basa su socket.

Ho fatto un modello di comando con questo molto tempo fa. Posso scavare il codice se sei interessato.