Пример #1
0
 def action(self, query, args=None):
     with db_lock:
         if query == None:
             return
 
         sqlResult = None
         attempt = 0
 
         while attempt < 5:
             try:
                 if args == None:
                     logger.debug("Executing: " + query, 'Database ' + self.filename)
                     sqlResult = self.connection.execute(query)
                 else:
                     logger.debug("Executing: " + query+" with args " + str(args), 'Database' + self.filename)
                     sqlResult = self.connection.execute(query, args)
                 self.connection.commit()
                 # get out of the connection attempt loop since we were successful
                 break
             except sqlite3.OperationalError, e:
                 if "unable to open database file" in e.message or "database is locked" in e.message:
                     logger.warning("Database error: " + e.message, 'Database' + self.filename)
                     attempt += 1
                     time.sleep(1)
                 else:
                     logger.error("DataBase error: " + e.message, 'Database' + self.filename)
                     raise
             except sqlite3.DatabaseError, e:
                 logger.error("Fatal error executing query: " + e.message, 'Database' + self.filename)
                 raise
Пример #2
0
def shutdown():
    save()
    
    logger.debug("Killing cherrypy", 'Shutdown')
    cherrypy.engine.exit()
    
    if CREATEPID:
        logger.debug("Removing pidfile " + str(PIDFILE), 'Shutdown')
        os.remove(PIDFILE)
        
    logger.debug("Exiting MAIN thread", 'Shutdown')
    sys.exit()
Пример #3
0
def save():
    global CONFIG
    
    logger.debug("Saving config file", 'Shutdown')
    CONFIG.saveConfig()