2012-06-23 52 views
5

¿Cuál es la mejor forma de conectar dos daemons en Python?Conectar dos daemons en python

Tengo daemon A y B. Me gustaría recibir datos generados por B en el módulo de A (quizás bidireccional). Ambos daemons admiten complementos, por lo que me gustaría cerrar la comunicación en complementos. ¿Cuál es la mejor forma y multiplataforma para hacer eso?

Conozco algunos mecanismos de soluciones de bajo nivel: memoria compartida (C/C++), linux pipe, sockets (TCP/UDP), etc. y pocos de alto nivel - queue (JMS, Rabbit), RPC.

Ambos daemons deben ejecutarse en el mismo host, pero obviamente el mejor enfoque es abstraerse del tipo de conexión.

¿Cuáles son las soluciones/bibliotecas típicas en python? Estoy buscando una solución elegante y ligera. No necesito un servidor externo, solo dos procesos hablando entre ellos.

¿Qué debo usar en python para hacer eso?

+1

Una lista de mensajes es probablemente la solución más elegante. – ThiefMaster

+0

Hmm como cola de mensajes Entiendo RabbitMQ/JMS, etc. Me gustaría evitar que el tercer daemon/servidor externo maneje toda la comunicación. Además la comunicación será muy intensa, así que tal vez incluso si la cola es la manera más elegante, creo que algo más simple podría ser mejor. – Simon

+1

Diría dbus, pero ahora hay una versión para Windows de dbus. – dav1d

Respuesta

0

no estoy seguro de qué tan pesado es el tráfico, pero Yo recomendaría el paquete asyncore. Es bastante simple de usar y se basa en enchufes.

Hice un patrón de comando con esto hace mucho tiempo. Puedo desenterrar el código si estás interesado.