Phil Christensen wrote: > On Aug 24, 2009, at 9:14 PM, Garret Heaton wrote: >> On Mon, Aug 24, 2009 at 3:53 PM, Phil Christensen <p...@bubblehouse.org >>> wrote: >>> I feel like I can think of any number of ways running the same >>> series of queries twice would be a bad thing. I have some very >>> important queries that are run inside a interaction because they do >>> a series of operations in sequence. I can't use transactions >>> because my tables are MyISAM. >>> >>> Perhaps I'm jumping at shadows, but automatic re-querying just >>> seems dangerous to me. Only the particular application knows when >>> it's safe. >> This is very true, and I should have mentioned it in my reply. Re- >> running queries is only possible when you know your application can >> do it safely. >> >> How would you solve the issue of a lost connection in your case? > > Honestly, I have never actually solved it. I pretty much only write > webapps these days, so when a ConnectionLost happens, it just > propagates up the stack and displays an error to the user. Not ideal, > by any means.
It's hard to apply in the general case, but I like the way Zope handles this using the per-request transaction machinery. Basically, if any processing generates a "retry"able exception, all transactions attached to the request are rolled back and the entire request re-submitted. This works really, really well for HTML<->SQL CRUD apps. I can't see how Twisted could support that currently, given the deferToThread == 1 transaction nature of adbapi. _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python