Fix SQLite concurrency errors

This commit is contained in:
shortcutme 2019-03-18 03:36:12 +01:00
parent 84c39f3baa
commit 61c72ac3ea
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE
2 changed files with 12 additions and 10 deletions

View file

@ -56,6 +56,7 @@ class Db(object):
self.schema["version"] = self.schema.get("version", 1)
self.conn = None
self.cur = None
self.progress_sleeping = False
self.log = logging.getLogger("Db:%s" % schema["db_name"])
self.table_names = None
self.collect_stats = False
@ -92,7 +93,9 @@ class Db(object):
)
def progress(self, *args, **kwargs):
gevent.sleep()
self.progress_sleeping = True
time.sleep(0.001)
self.progress_sleeping = False
# Execute query using dbcursor
def execute(self, query, params=None):
@ -101,6 +104,10 @@ class Db(object):
return self.cur.execute(query, params)
def commit(self, reason="Unknown"):
if self.progress_sleeping:
self.log.debug("Commit ignored: Progress sleeping")
return False
try:
s = time.time()
self.conn.commit()