from threading import Thread from mysql.connector import connect, Error from time import sleep, time from macros import * import os class NThread(Thread): conn = None def __init__(self, event): super(NThread, self).__init__() self.event = event def clean(self): with self.conn.cursor() as c: c.execute(f"DELETE FROM `asiclogs` WHERE `time` < UNIX_TIMESTAMP() - %s", (CONF.get('db-log-days'),)) c.execute(f"DELETE FROM `laststate` WHERE `time` < UNIX_TIMESTAMP() - 30") self.conn.commit() def run(self): try: SUCC("Cleaner started!") self.conn = connect( host=CONF.get('db', 'host'), user=CONF.get('db', 'user'), password=CONF.get('db', 'password'), database=CONF.get('db', 'name')) while 1: if self.event.is_set(): SUCC('Cleaner stopped!') break self.clean() sleep(5) except Exception as e: CRIT(str(e)) os._exit(1)