我正在使用Spyne来实现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()
问题是这不是多线程的,因此无法处理多个客户端。我搜索了一下这个,我想我必须使用像Django这样的apache / mod_wsgi来拥有多线程/多处理服务器。但这对我的申请来说有点复杂。
我只需要一个Web服务,尽可能使用多线程/多处理。我有什么选择?
提前致谢
答案 0 :(得分:1)
我可以推荐Twisted和CherryPy,它们都提供了不错的Wsgi实现。