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) 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