From 78109cfa1baca22004bad1e978649c946987b11c Mon Sep 17 00:00:00 2001 From: learsu Date: Wed, 31 Jul 2013 16:34:35 +0800 Subject: [PATCH 1/2] Update torndb.py support transaction,no false reason,if you want reason,del L149 # --- torndb.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/torndb.py b/torndb.py index 33b3f7b..3ed8c3a 100644 --- a/torndb.py +++ b/torndb.py @@ -134,6 +134,22 @@ def query(self, query, *parameters, **kwparameters): return [Row(itertools.izip(column_names, row)) for row in cursor] finally: cursor.close() + + def transaction(self, query, *parameters, **kwparameters): + self._db.begin() + cursor = self._cursor() + status = True + try: + for sql in query: + cursor.execute(sql, kwparameters or parameters) + self._db.commit() + except OperationalError, e: + self._db.rollback() + status = False + #raise Exception(e.args[0], e.args[1]) + finally: + cursor.close() + return status def get(self, query, *parameters, **kwparameters): """Returns the first row returned for the given query.""" From a3a7b950d97bd8a03a46209f742a963d29f79b7a Mon Sep 17 00:00:00 2001 From: learsu Date: Thu, 1 Aug 2013 17:24:59 +0800 Subject: [PATCH 2/2] Update torndb.py method _ensure_connected add ping check connect --- torndb.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/torndb.py b/torndb.py index 3ed8c3a..e977b8b 100644 --- a/torndb.py +++ b/torndb.py @@ -231,6 +231,10 @@ def _ensure_connected(self): if (self._db is None or (time.time() - self._last_use_time > self.max_idle_time)): self.reconnect() + try: + self._db.ping() + except: + self.reconnect() self._last_use_time = time.time() def _cursor(self):