Files
dseditor-ComfyUI-ScheduledTask/__init__.py
T
2025-06-19 23:46:46 +08:00

77 lines
1.8 KiB
Python

"""
ComfyUI-ScheduledTask
簡化版排程任務系統
"""
import os
import threading
import time
import atexit
# 匯入節點類別和排程管理器
from .scheduler import SchedulerManager, TimeToSeedList, DailyPromptScheduler
# 匯入web處理器 (如果存在的話)
try:
from .web_handler import setup_routes
HAS_WEB_HANDLER = True
except ImportError:
HAS_WEB_HANDLER = False
print("Warning: web_handler not found, web interface will be disabled")
# 全域排程管理器
scheduler_manager = None
def get_scheduler():
global scheduler_manager
if scheduler_manager is None:
scheduler_manager = SchedulerManager()
return scheduler_manager
# 延遲初始化
def delayed_init():
try:
time.sleep(3) # 等待ComfyUI完全啟動
get_scheduler()
except Exception as e:
print(f"Error in delayed initialization: {e}")
# 啟動初始化執行緒
init_thread = threading.Thread(target=delayed_init, daemon=True)
init_thread.start()
# 設定web路由 (如果可用)
if HAS_WEB_HANDLER:
try:
setup_routes()
except Exception as e:
print(f"Error setting up web routes: {e}")
# 清理函數
def cleanup():
global scheduler_manager
if scheduler_manager:
try:
scheduler_manager.stop()
except Exception as e:
print(f"Error during cleanup: {e}")
atexit.register(cleanup)
# 節點類別映射 - 這是關鍵!
NODE_CLASS_MAPPINGS = {
"TimeToSeedList": TimeToSeedList,
"DailyPromptScheduler": DailyPromptScheduler,
}
# 節點顯示名稱映射
NODE_DISPLAY_NAME_MAPPINGS = {
"TimeToSeedList": "Time to Seed List",
"DailyPromptScheduler": "Daily Prompt Scheduler",
}
# Web擴展映射
WEB_DIRECTORY = "./web"
# 確保必要的匯出
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS', 'WEB_DIRECTORY']