50 lines
1.7 KiB
Python
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)
|