Don't execute query while commiting
This commit is contained in:
parent
594edc6e9a
commit
12bfad8fe6
2 changed files with 6 additions and 2 deletions
|
@ -68,6 +68,7 @@ class Db(object):
|
||||||
self.cur = None
|
self.cur = None
|
||||||
self.progress_sleeping = False
|
self.progress_sleeping = False
|
||||||
self.log = logging.getLogger("Db:%s" % schema["db_name"])
|
self.log = logging.getLogger("Db:%s" % schema["db_name"])
|
||||||
|
self.commiting = False
|
||||||
self.table_names = None
|
self.table_names = None
|
||||||
self.collect_stats = False
|
self.collect_stats = False
|
||||||
self.foreign_keys = False
|
self.foreign_keys = False
|
||||||
|
@ -125,6 +126,7 @@ class Db(object):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
s = time.time()
|
s = time.time()
|
||||||
|
self.commiting = True
|
||||||
self.conn.commit()
|
self.conn.commit()
|
||||||
self.log.debug("Commited in %.3fs (reason: %s)" % (time.time() - s, reason))
|
self.log.debug("Commited in %.3fs (reason: %s)" % (time.time() - s, reason))
|
||||||
return True
|
return True
|
||||||
|
@ -134,6 +136,8 @@ class Db(object):
|
||||||
else:
|
else:
|
||||||
self.log.error("Commit error: %s (reason: %s)" % (Debug.formatException(err), reason))
|
self.log.error("Commit error: %s (reason: %s)" % (Debug.formatException(err), reason))
|
||||||
return False
|
return False
|
||||||
|
finally:
|
||||||
|
self.commiting = False
|
||||||
|
|
||||||
def insertOrUpdate(self, *args, **kwargs):
|
def insertOrUpdate(self, *args, **kwargs):
|
||||||
if not self.conn:
|
if not self.conn:
|
||||||
|
|
|
@ -88,7 +88,7 @@ class DbCursor:
|
||||||
if query.upper().strip("; ") == "VACUUM":
|
if query.upper().strip("; ") == "VACUUM":
|
||||||
self.db.commit("vacuum called")
|
self.db.commit("vacuum called")
|
||||||
query = query.strip()
|
query = query.strip()
|
||||||
while self.db.progress_sleeping:
|
while self.db.progress_sleeping or self.db.commiting:
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
|
|
||||||
self.db.last_query_time = time.time()
|
self.db.last_query_time = time.time()
|
||||||
|
@ -133,7 +133,7 @@ class DbCursor:
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def executemany(self, query, params):
|
def executemany(self, query, params):
|
||||||
while self.db.progress_sleeping:
|
while self.db.progress_sleeping or self.db.commiting:
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
|
|
||||||
self.db.last_query_time = time.time()
|
self.db.last_query_time = time.time()
|
||||||
|
|
Loading…
Reference in a new issue