[Stackless] XML-RPC Library
Andrew Francis
andrewfr_ice at yahoo.com
Thu Aug 27 19:32:01 CEST 2009
Hi Frederick:
>I'm looking for a non-blocking XML-RPC library for stackless.
>Is it out there ?
If you are willing to learn a little about what is happening under the
hood, you could use Twisted, in this case, its XML-RPC class.
Here is a simple example modified from the Twisted XML-RPC page:
import stackless
from twisted.web.xmlrpc import Proxy
from twisted.internet import reactor
def blockOn(deferred):
channel = stackless.channel()
def success(answer):
channel.send((True,answer))
def failure(problem):
channel.send((False,problem))
deferred.addCallbacks(success, failure)
return channel.receive()
def client():
proxy = Proxy('http://advogato.org/XMLRPC')
value = blockOn(proxy.callRemote('test.sumprod', 3, 5))
print value
stackless.tasklet(client)()
stackless.tasklet(reactor.run)()
stackless.run()
With Twisted, as most reactor based systems, you have to associated a callback with a channel. Here, I happen to use Christopher Armstrong's blockOn() technique. I have found blockOn() suffices for many simple (and not so simple) tasks. There is a little more to it, but not that much more.
Cheers,
Andrew
More information about the Stackless
mailing list