On Tue, Sep 15, 2009 at 5:19 PM, Mark Visser <ma...@lumierevfx.com> wrote: > exar...@twistedmatrix.com wrote: >> On 10:37 am, petshm...@googlemail.com wrote: >>> >>> I'd like to run several queries in background, some of them may fail. >>> >> >> If you have a function along the lines of this one: >> >> def someInteractions(db): >> interactions = [ >> db.runInteraction(one), >> db.runInteraction(two), >> db.runInteraction(three)] >> >> Then a failure in one shouldn't affect two or three; likewise for any >> other failure or combination of failures. They are naturally (ugh, not >> a good word, but I can't think of a better one) independent. You have >> to go out of your way to associate them somehow. >> > I think he might mean he wants them to run sequentially, even if one fails. > > You can do that explicitly via @inlineCallbacks like this: > > @inlineCallbacks > def someInteractions(db): > try: > yield db.runInteraction(one) > except: > pass > > try: > yield db.runInteraction(two) > except: > pass > > try: > yield db.runInteraction(three) > except: > pass > > Or with callback/errbacks, like this: > > def someInteractions(db) > d = db.runInteraction(one).addBoth(db.runInteraction, > two).addBoth(db.runInteraction, three)
Hi Mark! Yes, I'd like run them sequentially, it was not clear for me, how to do it in one deferred. I will try your suggestions out. Thanks for help! Pet > > addBoth is a convenience method that adds the same function as a > callback and an errback: > > http://twistedmatrix.com/documents/8.2.0/api/twisted.internet.defer.Deferred.html#addBoth > > -- > Mark Visser, Software Director > Lumière VFX > Email: ma...@lumierevfx.com > Phone: +1-514-316-1080 x3030 > > > _______________________________________________ > Twisted-Python mailing list > Twisted-Python@twistedmatrix.com > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python > _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python