2011-02-17 31 views
3

可能重複:
Python XMLRPC with concurrent requestsSimpleXMLRPCServer是單線程的嗎?

我正在寫一個Python應用程序將作爲XML-RPC服務器,使用SimpleXMLRPCServer類。

現在我的問題是:如果2個或更多客戶端同時發送請求會發生什麼?他們排隊了嗎? 我是否有保證,如果兩個客戶端調用相同或不同的功能,他們一個接一個地執行,而不是同時執行?

+0

答案取決於大量的建築特徵。請提供更多關於你在做什麼的信息。例如,如果你的服務器是Apache的一部分(通過mod_wsgi),你有多個Apache進程,每個進程都有多個併發的wsgi線程,所有線程都獨立於你的應用程序。 – 2011-02-17 18:56:44

回答

7

我相信SimpleXMLRPCServer的庫實現確實是單線程的。你必須添加一個mixin,使其成爲要求在多線程方式:

from SocketServer import ThreadingMixIn 
from SimpleXMLRPCServer import SimpleXMLRPCServer 

class MyXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer): 
    """...""" 
1

如果你只需要你的應用程序來處理XML-RPC請求(超過一位,如果所需的時間),你可能需要看看Pythomnic框架。