Florian Lindner wrote:
Hallo,
ich habe folgendes Problem. Ein Programm startet einen XML-RPC Server. Dieser bietet eine Methode run() an, die den eigentlichen Ablauf startet. Im Code schaut das so aus:
server = ControlServer(config, w_stack)
ControlServer startet einen ThreadedXMLRPCServer, abgeleitet von ThreadingMixIn und SimpleXMLRPCServer.
In ControlServer.__init__: self.server.serve_forever()
Nun würde ich das Programm auch gerne standalone laufen lassen, der Vorgang soll also gestartet werden, ohne das die run() Methode von extern aufgerufen werden muss, das Programm soll sie selber aufrufen. serve_forever() blockiert allerdings den Programmfluss.
Eine Möglichkeit wäre sicherlich, dass ich vor dem Aufruf von serve_forever() einen seperaten Thread starte und in diesen dann run() aufrufe. Dies erscheint mir allerdings recht umständlich.
Wie würdet ihr das machen? Also einfach nach den Aufruf von serve_forever() noch eine einzelne Methode der Klasse aufrufen?
Einfach den serve_forever()-call aus ControlServer.__init__() entfernen und ggf. explizit aufrufen? Hm, wahrscheinlich hab ich die Frage nicht verstanden...