[Twisted-Python] Return only when value/handle is available

vikas kumar vikas.c.kumar at oracle.com
Wed Sep 3 11:52:13 MDT 2014


Hi Jonas,

This is nice.
But still we are retrying it repeatedly at regular interval(10). Can't 
we get the notified asynchronously as and when handle is available.

Regards
Vikas

On 9/3/2014 6:10 PM, Jonas Brunsgaard wrote:
> I would fiddle around with something like this.
>
> from twisted.internet.defer import inlineCallbacks, returnValue, Deferred
> from twisted.internet import reactor
>
>
> @inlineCallbacks
> def foo(self, retries=10, interval=10):
>     while True:
>         try:
> returnValue((yield self.get_handle()))
>         except SystemDelayException as e:
>             if retries > 0:
>         retries -= 1
>                 d = Deferred()
> reactor.callLater(interval, d.callback, None)
>                 yield d
>             else:
>                 raise e
>
> On Wed, Sep 3, 2014 at 1:32 PM, vikas kumar <vikas.c.kumar at oracle.com 
> <mailto:vikas.c.kumar at oracle.com>> wrote:
>
>     Hi,
>
>     I am little new to twisted.
>     I've a function(get_handle) which returns a handle.
>
>     But get_handle() may throw an exception(SystemDelayException)
>     because of some delay in system.
>     My requirement is : When I get SystemDelayException re-attempt
>     get_handle() and return only when handle is available. How do I
>     use deferred/reactor in this scenario?
>
>     try:
>         handle = yield self.get_handle()
>     except SystemDelayException:
>         // code to re-attempt get_handle and return only when handle
>     is available
>
>     Regards
>     Vikas
>
>
>     _______________________________________________
>     Twisted-Python mailing list
>     Twisted-Python at twistedmatrix.com
>     <mailto:Twisted-Python at twistedmatrix.com>
>     http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
>
>
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20140903/bdb6b4db/attachment-0002.html>


More information about the Twisted-Python mailing list