removed database locking

This commit is contained in:
rembo10
2014-01-13 15:49:17 +00:00
+27 -31
View File
@@ -28,8 +28,6 @@ import headphones
from headphones import logger from headphones import logger
db_lock = threading.Lock()
def dbFilename(filename="headphones.db"): def dbFilename(filename="headphones.db"):
return os.path.join(headphones.DATA_DIR, filename) return os.path.join(headphones.DATA_DIR, filename)
@@ -56,38 +54,36 @@ class DBConnection:
self.connection.row_factory = sqlite3.Row self.connection.row_factory = sqlite3.Row
def action(self, query, args=None): def action(self, query, args=None):
with db_lock:
if query == None: if query == None:
return return
sqlResult = None
attempt = 0
while attempt < 5: sqlResult = None
try: attempt = 0
if args == None:
#logger.debug(self.filename+": "+query) while attempt < 5:
sqlResult = self.connection.execute(query) try:
else: if args == None:
#logger.debug(self.filename+": "+query+" with args "+str(args)) #logger.debug(self.filename+": "+query)
sqlResult = self.connection.execute(query, args) sqlResult = self.connection.execute(query)
self.connection.commit() else:
break #logger.debug(self.filename+": "+query+" with args "+str(args))
except sqlite3.OperationalError, e: sqlResult = self.connection.execute(query, args)
if "unable to open database file" in e.message or "database is locked" in e.message: self.connection.commit()
logger.warn('Database Error: %s' % e) break
attempt += 1 except sqlite3.OperationalError, e:
time.sleep(1) if "unable to open database file" in e.message or "database is locked" in e.message:
else: logger.warn('Database Error: %s' % e)
logger.error('Database error: %s' % e) attempt += 1
raise time.sleep(1)
except sqlite3.DatabaseError, e: else:
logger.error('Fatal Error executing %s :: %s' % (query, e)) logger.error('Database error: %s' % e)
raise raise
except sqlite3.DatabaseError, e:
return sqlResult logger.error('Fatal Error executing %s :: %s' % (query, e))
raise
return sqlResult
def select(self, query, args=None): def select(self, query, args=None):