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