2014-02-09 62 views
0

我正在使用Spyne來實現SOAP服務。Python SOAP服務,一個好的多線程/多進程方式

我使用內置的wsgi服務器運行此服務。這裏是代碼:

# Logging 
import logging 
logging.basicConfig(level=logging.DEBUG) 
logging.raiseExceptions = 0 
# Spyne imports 
from spyne.application import Application 
from spyne.decorator import srpc 
from spyne.service import ServiceBase 
from spyne.model.primitive import * 
from spyne.model.complex import * 
from spyne.protocol.soap import Soap11 
from spyne.server.wsgi import WsgiApplication 


class HelloWorldService (ServiceBase): 

    @srpc(Unicode, _returns=Unicode) 
    def add_job(nfs_path): 
     print('Job added: {0}'.format(nfs_path)) 
     return 'OK' 


from wsgiref.simple_server import make_server 
application = Application([HelloWorldService], tns='job.service', 
          in_protocol=Soap11(validator='lxml'), 
          out_protocol=Soap11()) 
wsgi_app = WsgiApplication(application) 
server = make_server('0.0.0.0', 1369, wsgi_app) 
server.serve_forever() 

問題是,這不是多線程,所以它不能處理多個客戶端。我google了一下這個,我想我必須使用apache/mod_wsgi像Django一樣具有多線程/多處理服務器。但是這對我的應用程序來說有點複雜。

我只需要一個Web服務,儘可能輕鬆地使用多線程/多處理。我有什麼選擇?

在此先感謝

回答

1

我可以推薦扭曲和CherryPy的這兩個提供體面的WSGI實現。