cleanup records older than 16 days

This commit is contained in:
bymyself 2025-06-21 16:57:54 -07:00
parent 35d98dcea8
commit a66f86d4af

View File

@ -21,7 +21,7 @@ import traceback
import urllib.request import urllib.request
import uuid import uuid
import zipfile import zipfile
from datetime import datetime from datetime import datetime, timedelta
from typing import Any, Optional from typing import Any, Optional
import folder_paths import folder_paths
@ -191,6 +191,7 @@ class TaskQueue:
self.batch_start_time = None self.batch_start_time = None
self.batch_state_before = None self.batch_state_before = None
self._worker_task = None self._worker_task = None
self._cleanup_performed = False
def is_processing(self) -> bool: def is_processing(self) -> bool:
"""Check if the queue is currently processing tasks""" """Check if the queue is currently processing tasks"""
@ -546,6 +547,11 @@ class TaskQueue:
self.batch_start_time = None self.batch_start_time = None
self.batch_state_before = None self.batch_state_before = None
# Cleanup old batch files once per session
if not self._cleanup_performed:
self._cleanup_old_batches()
self._cleanup_performed = True
except Exception as e: except Exception as e:
logging.error(f"[ComfyUI-Manager] Failed to save batch history: {e}") logging.error(f"[ComfyUI-Manager] Failed to save batch history: {e}")
@ -587,20 +593,20 @@ class TaskQueue:
# Check if front-end-root is specified (overrides version) # Check if front-end-root is specified (overrides version)
if hasattr(args, "front_end_root") and args.front_end_root: if hasattr(args, "front_end_root") and args.front_end_root:
return f"custom-root: {args.front_end_root}" return f"custom-root: {args.front_end_root}"
# Check if front-end-version is specified # Check if front-end-version is specified
if hasattr(args, "front_end_version") and args.front_end_version: if hasattr(args, "front_end_version") and args.front_end_version:
if "@" in args.front_end_version: if "@" in args.front_end_version:
return args.front_end_version.split("@")[1] return args.front_end_version.split("@")[1]
else: else:
return args.front_end_version return args.front_end_version
# Otherwise, check for installed package # Otherwise, check for installed package
pip_packages = self._get_pip_packages() pip_packages = self._get_pip_packages()
for package_name in ["comfyui-frontend", "comfyui_frontend"]: for package_name in ["comfyui-frontend", "comfyui_frontend"]:
if package_name in pip_packages: if package_name in pip_packages:
return pip_packages[package_name] return pip_packages[package_name]
return None return None
except Exception: except Exception:
return None return None
@ -741,7 +747,7 @@ class TaskQueue:
# Only include operations from the current batch # Only include operations from the current batch
if task.batch_id != self.batch_id: if task.batch_id != self.batch_id:
continue continue
result_status = OperationResult.success result_status = OperationResult.success
if task.status: if task.status:
status_str = ( status_str = (
@ -773,6 +779,39 @@ class TaskQueue:
return operations return operations
def _cleanup_old_batches(self) -> None:
"""Clean up batch history files older than 90 days.
This is a best-effort cleanup that silently ignores any errors
to avoid disrupting normal operations.
"""
try:
cutoff = datetime.now() - timedelta(days=16)
cutoff_timestamp = cutoff.timestamp()
pattern = os.path.join(context.manager_batch_history_path, "batch_*.json")
removed_count = 0
import glob
for file_path in glob.glob(pattern):
try:
if os.path.getmtime(file_path) < cutoff_timestamp:
os.remove(file_path)
removed_count += 1
except Exception:
pass
if removed_count > 0:
logging.debug(
"[ComfyUI-Manager] Cleaned up %d old batch history files",
removed_count,
)
except Exception:
# Silently ignore all errors - this is non-critical functionality
pass
task_queue = TaskQueue() task_queue = TaskQueue()