2014-02-09 50 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实现。