Don't execute query while commiting

This commit is contained in:
shortcutme 2019-11-30 02:11:11 +01:00
parent 594edc6e9a
commit 12bfad8fe6
No known key found for this signature in database
GPG Key ID: 5B63BAE6CB9613AE
2 changed files with 6 additions and 2 deletions

View File

@ -68,6 +68,7 @@ class Db(object):
self.cur = None
self.progress_sleeping = False
self.log = logging.getLogger("Db:%s" % schema["db_name"])
self.commiting = False
self.table_names = None
self.collect_stats = False
self.foreign_keys = False
@ -125,6 +126,7 @@ class Db(object):
try:
s = time.time()
self.commiting = True
self.conn.commit()
self.log.debug("Commited in %.3fs (reason: %s)" % (time.time() - s, reason))
return True
@ -134,6 +136,8 @@ class Db(object):
else:
self.log.error("Commit error: %s (reason: %s)" % (Debug.formatException(err), reason))
return False
finally:
self.commiting = False
def insertOrUpdate(self, *args, **kwargs):
if not self.conn:

View File

@ -88,7 +88,7 @@ class DbCursor:
if query.upper().strip("; ") == "VACUUM":
self.db.commit("vacuum called")
query = query.strip()
while self.db.progress_sleeping:
while self.db.progress_sleeping or self.db.commiting:
time.sleep(0.1)
self.db.last_query_time = time.time()
@ -133,7 +133,7 @@ class DbCursor:
return res
def executemany(self, query, params):
while self.db.progress_sleeping:
while self.db.progress_sleeping or self.db.commiting:
time.sleep(0.1)
self.db.last_query_time = time.time()