[spyne] [Soap-Python] How keep Python 3 moving forward - suds & Python 3

Dariusz Suchojad dsuch at zato.io
Fri May 30 06:55:57 UTC 2014


On 05/30/2014 08:43 AM, Burak Arslan wrote:

[About suds]

> Also, it can't do async because unlike Spyne, transports are not
> pluggable. 

Just for the record - I use suds-jurko asynchronously in Zato, which is
based on gunicorn/gevent, just fine.

I can't say whether the original suds library could have been used
because I didn't really investigate that option, went straight to
suds-jurko.

The only issue I had was that suds-jurko inherited from plain suds
class/client-level caches that had to be worked around by obtaining a
queue of pre-configured number of SOAP clients in their own queues by an
initializing Zato server.

https://github.com/zatosource/zato/blob/master/code/zato-server/src/zato/server/connection/http_soap/outgoing.py#L314

https://github.com/zatosource/zato/blob/master/code/zato-server/src/zato/server/connection/queue.py

So essentially:

- gevent monkey patches everything suds-jurko needs thus making the
latter asynchronous

- Zato creates a queue of client connections

- Users can run suds-jurko in an asynchronous manner

- Everyone is happy :-)

cheers,

-- 
Dariusz Suchojad

https://zato.io
ESB, SOA, REST, APIs and cloud integrations in Python


More information about the people mailing list