Seite 1 von 1

Modul-Kommunikation im Netzwerk

Verfasst: Dienstag 23. September 2008, 22:56
von studi
Guten Abend.

Ich habe z.B zwei Module A und B die über XMLRPCServer kommunizieren. Das modul A hat eine funktion funk_a(), die jede 2 Sekunden einen int ausspuckt.
Das Modul B hat eine Funktion funk_b() die diese int's mit 2 multiplieziert. Ich schaffe es allerdiengs nicht die Werte von funk_a() über XMLRPZ an funk_b() zu übergeben.
Ist das überhaupt machber bzw. wie würde das gehen. Habe schon was von subprocess.Popen und PIPE gelesen, sehe aber kein zusmmenhang zu meinem Problem.
Hoffe ihr könnt mir paar Tipps geben womit das problem lösbar wäre.

Vielen Dank im voraus.

Verfasst: Dienstag 23. September 2008, 23:36
von Leonidas
Letzendlich läuft XML-RPC immer nach dem Client-Server-Prinzip, d.h. der Client ruft eine Funktion auf, die auf dem Server ausgeführt wird und deren Rückgabewert an den Client geschickt wird. Also musst du ``funk_a()`` auf dem Server vom Client alle 2 Sekunden aufrufen.

Verfasst: Mittwoch 24. September 2008, 09:07
von Hyperion
Die Module werden auf zwei unterschiedlichen Rechnern ausgeführt? Wenn ja, kommst Du um eine - wie auch immer geartete - Netzwerkommunikation nicht herum (Außer mit "fiesen" Tricks).

Wenn nein, wäre D-Bus evtl. etwas: http://dbus.freedesktop.org/

Verfasst: Mittwoch 24. September 2008, 11:57
von studi
Ja, leider müssen die Module auf verschiedenen Rechnern ausgeführt werden. :(
Was ist mit Queue wäre es vielleicht damit machbar. Bevor ich mich damit beschäftige und dann herausfinde, dass es doch nichts für mich ist, frage ich lieber nach.
Ansonsten probiere ich den Tipp von Leonidas zu realisieren und melde mich dann wieder.

Vielen Dank. :)

Verfasst: Mittwoch 24. September 2008, 12:41
von Leonidas
studi hat geschrieben:Was ist mit Queue wäre es vielleicht damit machbar. Bevor ich mich damit beschäftige und dann herausfinde, dass es doch nichts für mich ist, frage ich lieber nach.
``Queue`` ist eine Art Liste auf die von verschiedenen Threads zugegriffen werden kann. Remotezugriff erlaubt das nicht.