From 024072688fcaff7e9c7e204384591adb27822460 Mon Sep 17 00:00:00 2001 From: Donald Zou Date: Tue, 2 Dec 2025 14:27:51 +0800 Subject: [PATCH] Stable for SQLite and PostgreSQL --- src/modules/PeerJobLogger.py | 5 +++-- src/modules/PeerJobs.py | 26 ++++++++++++-------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/modules/PeerJobLogger.py b/src/modules/PeerJobLogger.py index 4ad76276..0c6834f4 100644 --- a/src/modules/PeerJobLogger.py +++ b/src/modules/PeerJobLogger.py @@ -68,10 +68,10 @@ class PeerJobLogger: db.select( self.jobLogTable.c.JobID ).where( - db.or_( + (db.or_( self.jobLogTable.c.Status == 'false', self.jobLogTable.c.Status == 0 - ) + ) if conn.dialect.name == 'sqlite' else self.jobLogTable.c.Status == 'false') ).group_by( self.jobLogTable.c.JobID ).having( @@ -97,4 +97,5 @@ class PeerJobLogger: def vacuum(self): with self.engine.begin() as conn: if conn.dialect.name == 'sqlite': + print("[WGDashboard] SQLite Vacuuming PeerJogLogs Database") conn.execute(db.text('VACUUM;')) \ No newline at end of file diff --git a/src/modules/PeerJobs.py b/src/modules/PeerJobs.py index f9ac4103..274a4263 100644 --- a/src/modules/PeerJobs.py +++ b/src/modules/PeerJobs.py @@ -192,24 +192,22 @@ class PeerJobs: self.deleteJob(j) def cleanJob(self, init = False): - failingJobs = self.JobLogger.getFailingJobs() - # with self.engine.begin() as conn: - # print(conn.dialect.name) - # for job in failingJobs: - # conn.execute( - # self.peerJobTable.update().values( - # { - # "ExpireDate": datetime.now() - # } - # ).where(self.peerJobTable.columns.JobID == job.get('JobID')) - # ) - # self.JobLogger.deleteLogs(JobID=job.get('JobID')) - # self.JobLogger.log(job.get('JobID'), Message=f"Job is removed due to being stale.") + with self.engine.begin() as conn: + for job in failingJobs: + conn.execute( + self.peerJobTable.update().values( + { + "ExpireDate": datetime.now() + } + ).where(self.peerJobTable.columns.JobID == job.get('JobID')) + ) + self.JobLogger.deleteLogs(JobID=job.get('JobID')) + self.JobLogger.log(job.get('JobID'), Message=f"Job is removed due to being stale.") with self.engine.connect() as conn: if init and conn.dialect.name == 'sqlite': - print("[WGDashboard] SQLite Vacuuming...") + print("[WGDashboard] SQLite Vacuuming PeerJobs Database") self.JobLogger.vacuum() conn.execute(sqlalchemy.text('VACUUM;'))