可能重複:
Python XMLRPC with concurrent requestsSimpleXMLRPCServer是單線程的嗎?
我正在寫一個Python應用程序將作爲XML-RPC服務器,使用SimpleXMLRPCServer類。
現在我的問題是:如果2個或更多客戶端同時發送請求會發生什麼?他們排隊了嗎? 我是否有保證,如果兩個客戶端調用相同或不同的功能,他們一個接一個地執行,而不是同時執行?
可能重複:
Python XMLRPC with concurrent requestsSimpleXMLRPCServer是單線程的嗎?
我正在寫一個Python應用程序將作爲XML-RPC服務器,使用SimpleXMLRPCServer類。
現在我的問題是:如果2個或更多客戶端同時發送請求會發生什麼?他們排隊了嗎? 我是否有保證,如果兩個客戶端調用相同或不同的功能,他們一個接一個地執行,而不是同時執行?
我相信SimpleXMLRPCServer
的庫實現確實是單線程的。你必須添加一個mixin,使其成爲要求在多線程方式:
from SocketServer import ThreadingMixIn
from SimpleXMLRPCServer import SimpleXMLRPCServer
class MyXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):
"""..."""
如果你只需要你的應用程序來處理XML-RPC請求(超過一位,如果所需的時間),你可能需要看看Pythomnic框架。
答案取決於大量的建築特徵。請提供更多關於你在做什麼的信息。例如,如果你的服務器是Apache的一部分(通過mod_wsgi),你有多個Apache進程,每個進程都有多個併發的wsgi線程,所有線程都獨立於你的應用程序。 – 2011-02-17 18:56:44