From 3a3c413bd6e6fb89d80f7a9487ba9fabbd12e8bb Mon Sep 17 00:00:00 2001
From: xuyonghao <898441624@qq.com>
Date: 星期二, 31 十二月 2024 11:16:49 +0800
Subject: [PATCH] 调度器删除文件

---
 app/task/delete_execl_file.py      |   21 +++++++++++++++++++++
 main.py                            |    2 ++
 app/utils/excelmerge/conformity.py |   16 ----------------
 3 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/app/task/delete_execl_file.py b/app/task/delete_execl_file.py
new file mode 100644
index 0000000..0ba45ea
--- /dev/null
+++ b/app/task/delete_execl_file.py
@@ -0,0 +1,21 @@
+import os.path
+from datetime import datetime, timedelta
+
+
+def delete_file_after_delay():
+    path = "data/output"
+    data_dir = os.path.dirname(path)
+    if not os.path.exists(data_dir):
+        return
+    if not os.path.exists(path):
+        return
+    now = datetime.now()
+    five_minutes_ago = now - timedelta(minutes=5)
+    for filename in os.listdir(path):
+        file_path = os.path.join(path, filename)
+        if os.path.isfile(file_path):
+            creation_time = os.path.getctime(file_path)
+            file_creation_datetime = datetime.fromtimestamp(creation_time)
+            if file_creation_datetime < five_minutes_ago:
+                os.remove(file_path)
+                print(f"瀹氭椂鍒犻櫎鏂囦欢: {file_path}")
diff --git a/app/utils/excelmerge/conformity.py b/app/utils/excelmerge/conformity.py
index ccaf871..fed5e19 100644
--- a/app/utils/excelmerge/conformity.py
+++ b/app/utils/excelmerge/conformity.py
@@ -5,7 +5,6 @@
 
 from datetime import datetime
 from openpyxl import load_workbook
-from Log import logger
 
 
 def clear_blank_rows(sheet):
@@ -22,19 +21,6 @@
                 source_sheet.cell(row=row, column=col).value for col in range(4, source_sheet.max_column + 1)):
             target_sheet.append(
                 [source_sheet.cell(row=row, column=col).value for col in range(1, source_sheet.max_column + 1)])
-
-
-def delete_file_after_delay(file_path, delay_minutes):
-    from main import scheduler
-
-    def delete_file():
-        try:
-            if os.path.exists(file_path):
-                os.remove(file_path)
-        except Exception as e:
-            logger.error(f"瀹氭椂鍒犻櫎Excel鏂囦欢鏃跺彂鐢熼敊璇�: {e}")
-
-    scheduler.add_job(delete_file, 'interval', minutes=delay_minutes, id=f"delete_{file_path}")
 
 
 def run_conformity(file_path, print_path):
@@ -78,8 +64,6 @@
         output_path = os.path.join(print_path, f'{file_name}.xlsx')
         template_excel.save(output_path)
         template_excel.close()
-
-        delete_file_after_delay(output_path, 3)
 
         try:
             for filename in os.listdir(file_path):
diff --git a/main.py b/main.py
index fc2f567..6b28b99 100644
--- a/main.py
+++ b/main.py
@@ -23,6 +23,7 @@
 from app.api.group import group_router
 from app.api.role import role_router
 from app.models.base_model import init_db
+from app.task.delete_execl_file import delete_file_after_delay
 # from app.models.base_model import init_db
 from app.task.fetch_agent import sync_agents, initialize_agents, sync_agents_v2, sync_knowledge, \
     sync_resources_from_json
@@ -66,6 +67,7 @@
 # 鍒涘缓璋冨害鍣�
 scheduler = BackgroundScheduler()
 scheduler.add_job(sync_agents_v2, 'interval', minutes=60, id="sync_resource_data")
+scheduler.add_job(delete_file_after_delay, 'interval', minutes=10, id="delete_file_after_delay")
 scheduler.start()
 
 app.include_router(auth_router, prefix='/api/auth', tags=["auth"])

--
Gitblit v1.8.0