簡體   English   中英

Python多線程XMLRPC服務器(?)

[英]Python Multithreading XMLRPC server (?)

基本上我想在單獨的線程中運行我的xmlrpc服務器或者與我的其他代碼一起運行,但是,在server.serve_forever()之后,我無法在此函數之后運行另一個代碼。 似乎server.serve_forever()在那里永遠運行。

self.LocalServer = SimpleThreadedXMLRPCServer(("localhost",10007))
self.LocalServer.register_function(getTextA) #just return a string
self.LocalServer.serve_forever()
print "I want to continue my code after this..."
.... another code after this should running together with the server

我嘗試了多線程概念,但在這里仍然沒有運氣。 Basicaly我想和我的其余代碼一起運行xmlrpc服務器。

謝謝你的幫助。

您可以創建一個ServerThread類來封裝XML-RPC服務器並在線程中運行它:

class ServerThread(threading.Thread):
    def __init__(self):
         threading.Thread.__init__(self)
         self.localServer = SimpleThreadedXMLRPCServer(("localhost",10007))
         self.localServer.register_function(getTextA) #just return a string

    def run(self):
         self.localServer.serve_forever()

您可以通過以下方式使用此類:

server = ServerThread()
server.start() # The server is now running
print "I want to continue my code after this..."

我想和你做同樣的事情,這就是我做的事情。

server = SimpleXMLRPCServer(('127.0.0.1', 9000), logRequests=True, allow_none=True)
server.register_instance(ServerTrial()) 
server.register_introspection_functions()
server.register_multicall_functions()
server_thread = threading.Thread(target=server.serve_forever)
server_thread.start()
print'This will be printed'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM