Hi, for a couple of week i search how i should handle mysql disconnection on my twisted web service. When I restart the database without restarting my service i got some ConnectionLost fired. I have used the cp_reconnect on the connection pool and it seem to work ( the lost connection is restarted ) but the current query isn't executed.
So my question is how should I handle this case. Should I intercept the connectionLost and restart the query ? I have several queries in a single deffer so this method is not easy and clear. Any advice whould be welcome. I join the code of a sample resource. Thanks Sébastien HEITZMANN class StartResource(resource.Resource): def __init__(self, dbConnection, mdbConnection, config): self.db = dbConnection self.mdb = mdbConnection resource.Resource.__init__(self) def render_POST(self, request): try: uid = request.args['uid'][0] key = request.args['kkey'][0] conf = unicode(request.args['conf'][0],'utf8') self.db.runInteraction(self._start, uid, key, conf, request) return server.NOT_DONE_YET except Exception, e: print str(e) request.setResponseCode(http.INTERNAL_SERVER_ERROR, str(e)) request.write('ERROR:'+str(e)) request.finish() def _start(self, trans, uid, key, conf, request): try: if not utils.checkKKEY(uid, key, trans): r_status = 'ko' r_action = '' r_params = 'kkey invalid' request.write(json.write([r_status, r_action, r_params])) request.finish() return None query = "UPDATE kserver.b set status=-1 where status=0 and uid=%s" query %= (str(uid)) trans.execute(query) query = u"INSERT INTO `b` (uid, conf)" query += " VALUES(%s, '%s');" % ( str(uid), dbutil.safe(conf) ) trans.execute(query) bid = trans._cursor.connection.insert_id() #trans.commit() r_status = 'ok' r_action = '' r_params = {'bid':str(bid)} request.write(json.write([r_status, r_action, r_params])) request.finish() except Exception, e: print str(e) request.setResponseCode(http.INTERNAL_SERVER_ERROR, str(e)) request.write('ERROR:'+str(e)) request.finish() _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python