diff --git a/app.py b/app.py index 46150b3..9651046 100755 --- a/app.py +++ b/app.py @@ -3978,10 +3978,19 @@ def scheduled_task_worker(): import traceback traceback.print_exc() + # 用于跟踪配置变化,避免重复打印日志 + last_config_hash = [None] # 使用列表以便在闭包中修改 + # 每分钟检查一次配置 def check_and_schedule(): config = database.get_system_config() + # 计算配置哈希,检测配置是否变化 + config_hash = (config.get('schedule_enabled'), config.get('schedule_time', '02:00')) + config_changed = (last_config_hash[0] != config_hash) + is_first_run = (last_config_hash[0] is None) + last_config_hash[0] = config_hash + # 清除旧的任务 schedule.clear() @@ -4004,18 +4013,25 @@ def scheduled_task_worker(): # 始终添加每天凌晨3点(CST)的数据清理任务 cleanup_utc_time = cst_to_utc_time("03:00") schedule.every().day.at(cleanup_utc_time).do(cleanup_old_data) - print(f"[定时任务] 已设置数据清理任务: 每天 CST 03:00 (UTC {cleanup_utc_time})") # 每小时清理过期验证码 schedule.every().hour.do(cleanup_expired_captcha) - print(f"[定时任务] 已设置验证码清理任务: 每小时执行一次") + + # 只在首次运行时打印基础任务日志 + if is_first_run: + print(f"[定时任务] 已设置数据清理任务: 每天 CST 03:00 (UTC {cleanup_utc_time})") + print(f"[定时任务] 已设置验证码清理任务: 每小时执行一次") # 如果启用了定时浏览任务,则添加 if config.get('schedule_enabled'): schedule_time_cst = config.get('schedule_time', '02:00') schedule_time_utc = cst_to_utc_time(schedule_time_cst) schedule.every().day.at(schedule_time_utc).do(run_scheduled_task) - print(f"[定时任务] 已设置浏览任务: 每天 CST {schedule_time_cst} (UTC {schedule_time_utc})") + # 只在首次运行或配置变化时打印 + if is_first_run or config_changed: + print(f"[定时任务] 已设置浏览任务: 每天 CST {schedule_time_cst} (UTC {schedule_time_utc})") + elif config_changed and not is_first_run: + print(f"[定时任务] 浏览任务已禁用") # 初始检查 check_and_schedule()