Files

50 lines
1.7 KiB
Python

from .process import ComfyRootDiscovery, LaunchCommandBuilder, ProcessLifecycle, ProcessPersistence
class WorkerProcessManager:
"""Thin composition wrapper around worker process subsystems."""
def __init__(self):
self.processes = {}
self._root_discovery = ComfyRootDiscovery()
self._launch_builder = LaunchCommandBuilder()
self._lifecycle = ProcessLifecycle(self)
self._persistence = ProcessPersistence(self)
self.load_processes()
def find_comfy_root(self):
return self._root_discovery.find_comfy_root()
def _find_windows_terminal(self):
return self._launch_builder._find_windows_terminal()
def build_launch_command(self, worker_config, comfy_root):
return self._launch_builder.build_launch_command(worker_config, comfy_root)
def launch_worker(self, worker_config, show_window=False):
return self._lifecycle.launch_worker(worker_config, show_window=show_window)
def stop_worker(self, worker_id):
return self._lifecycle.stop_worker(worker_id)
def get_managed_workers(self):
return self._lifecycle.get_managed_workers()
def cleanup_all(self):
return self._lifecycle.cleanup_all()
def load_processes(self):
return self._persistence.load_processes()
def save_processes(self):
return self._persistence.save_processes()
def _is_process_running(self, pid):
return self._lifecycle._is_process_running(pid)
def _check_worker_process(self, worker_id, proc_info):
return self._lifecycle._check_worker_process(worker_id, proc_info)
def _kill_process_tree(self, pid):
return self._lifecycle._kill_process_tree(pid)