| 271 | self.write_log(str(ex)) |
| 272 | |
| 273 | def sess_expire_sql(self): |
| 274 | try: |
| 275 | import sqlite3 |
| 276 | self.write_log("启动session过期处理") |
| 277 | db_file = os.path.join(PANEL_PATH, "data/db/session.db") |
| 278 | if not os.path.exists(db_file): |
| 279 | return |
| 280 | size = os.path.getsize(db_file) |
| 281 | if size < 1024 * 1024 * 25: # 不足 10M 不用清理 |
| 282 | return |
| 283 | elif size > 1024 * 1024 * 100: # 大于 100M 删除所有数据 |
| 284 | public.clear_sql_session() |
| 285 | return |
| 286 | conn = sqlite3.connect(db_file) |
| 287 | cur = conn.cursor() |
| 288 | expiry_time = (datetime.now(tz=timezone.utc)- timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S.%f") |
| 289 | res = cur.execute("DELETE FROM sessions WHERE expiry < ?", (expiry_time,)) |
| 290 | self.write_log("session过期处理: 删除了{}条数据".format(res.rowcount)) |
| 291 | res = cur.execute("DELETE FROM sessions WHERE LENGTH(`data`) < ?", (200,)) |
| 292 | self.write_log("session过期处理: 删除了{}条空值数据".format(res.rowcount)) |
| 293 | cur.close() |
| 294 | conn.commit() |
| 295 | conn.close() |
| 296 | except Exception as e: |
| 297 | self.write_log(str(e)) |
| 298 | |
| 299 | def refresh_domain_cache(self): |
| 300 | ''' |