class SomeSoapService(spyne.Service): __service_url_path__ = '/soap/someservice' __in_protocol__ = Soap11() __out_protocol__ = Soap11() __tns__ = 'http://127.0.0.1/' @spyne.srpc( Array(Person), # 请求类型 _returns=Iterable(Unicode), # 返回类型 _in_variable_names={'data': 'param'}, # 请求节点名,默认为函数定义,修改为param _out_variable_name='return') # 返回节点名 def person(self, data): if not data: yield 'None' for person in data: yield 'name is : %s, age is %s.' % (person.name, person.age) @spyne.srpc(Integer, _returns=Integer, _out_variable_name='return') def block(ctx, seconds): print(1) return '1' __aux__ = ThreadAuxProc(pool_size=1) @spyne.srpc(Integer) def block(ctx, seconds): print(2)
class Service(ServiceBase): @srpc(String, _returns=String, _aux=ThreadAuxProc()) def call(s): pass @srpc(String, _returns=String) def mall(s): pass
class SomeAuxService(Service): __aux__ = ThreadAuxProc() # change this to SyncAuxProc to see the difference @rpc(Integer) def block(ctx, seconds): """Blocks the reactor for given number of seconds.""" logging.info("Auxiliary sleeping for %d seconds." % (seconds * 2)) time.sleep(seconds * 2)
class AuxService(ServiceBase): __aux__ = ThreadAuxProc() @srpc(String, _returns=String) def call(s): data.add(s + "aux")