diff --git a/app.py b/app.py index 21fb550..6c4c447 100644 --- a/app.py +++ b/app.py @@ -208,6 +208,25 @@ if __name__ == "__main__": init_checkpoint_manager() logger.info("✓ 任务断点管理器已初始化") + # 【新增】容器重启时清理遗留的任务状态 + logger.info("清理遗留任务状态...") + try: + from services.state import safe_remove_task, safe_get_active_task_ids, safe_remove_task_status + # 重置所有账号的运行状态 + for _, accounts in safe_iter_user_accounts_items(): + for acc in accounts.values(): + if getattr(acc, "is_running", False): + acc.is_running = False + acc.should_stop = False + acc.status = "未开始" + # 清理活跃任务句柄 + for account_id in list(safe_get_active_task_ids()): + safe_remove_task(account_id) + safe_remove_task_status(account_id) + logger.info("✓ 遗留任务状态已清理") + except Exception as e: + logger.warning(f"清理遗留任务状态失败: {e}") + try: email_service.init_email_service() logger.info("✓ 邮件服务已初始化")