[Mailman-Developers] More on Mysql MemberAdaptor?
Barry Warsaw
barry at python.org
Mon Nov 10 11:36:38 EST 2003
I'm trying to catch up on this thread, so apologies if these questions
are already answered...
On Wed, 2003-11-05 at 06:11, Kyrian wrote:
> But seriously, doing it that way means I don't really have to worry
> about connection timeouts, etc. Maybe it can be rewritten later to work
> differently (like when I learn to write better python ;*), but for the
> most part, it will work now. I have cut down the number of connect()
> calls a little already though, but not as far as perhaps I could go.
I've been using the MySQLdb wrapper for Python recently in a different
project and here's how I've dealt with connection timeouts. I have a
"doquery" method which essentially calls connection.query() with the SQL
statement. Wrap that call in try/except for MySQLdb.OperationalError,
catch the exception object and test the error code against
MySQLdb.constants.CR.SERVER_LOST. If they match, just chuck and re-open
the connection. If they don't, just re-raise the exception.
Untested code example:
from MySQLdb import OperationalError
from MySQLdb.constants.CR import SERVER_LOST
def _doquery(self, sqlcmd):
try:
self._conn.query(sqlcmd)
except OperationalError, e:
code, msg = e
if code <> SERVER_LOST: raise
self._open()
> <bounce info
> for member bounceybouncey at orenet.co.uk
> current score: 1.0
> last bounce date: (2003, 11, 4)
> email notices left: 3
> last notice date: (1970, 1, 2)
> confirmation cookie: a9e8f042d93d3777da981f353f2e00ade42f6f
>
> I'm putting the "info" parameter from setBounceInfo directly into the
> database, which I think is an array itself, not a single value, and the
> above doesn't look like Python's just traversing an array, and dumping
> it into the database(the LHS names don't tie up with what I think are
> the keys for the subelements of "info"), so it looks like I'll have to
> take a "best guess" at how to implement this.
My suggestion would be to pickle the BounceInfo object on the way into
the database, and unpickle it on the way out.
-Barry
More information about the Mailman-Developers
mailing list