Bit.ASICmon-p/cleaner.py

44 lines
903 B
Python
Raw Normal View History

2024-03-25 12:32:11 +08:00
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)