Change worker communication from Unix sockets to TCP to fix connection issues

parent 5aca4219
......@@ -22,7 +22,7 @@ Manages request routing between web interface and worker processes.
import time
import threading
from .comm import SocketServer, Message
from .config import get_analysis_backend, get_training_backend, set_analysis_backend, set_training_backend
from .config import get_analysis_backend, get_training_backend, set_analysis_backend, set_training_backend, get_backend_worker_port
from .queue import queue_manager
......@@ -128,9 +128,8 @@ def backend_process() -> None:
web_server = SocketServer(host='localhost', port=get_backend_web_port(), comm_type='tcp')
web_server.start(handle_web_message)
# Start worker server (always Unix socket)
worker_socket_path = get_socket_path('worker')
worker_server = SocketServer(socket_path=worker_socket_path, comm_type='unix')
# Start worker server (TCP socket)
worker_server = SocketServer(host='localhost', port=get_backend_worker_port(), comm_type='tcp')
worker_server.start(worker_message_handler)
try:
......
......@@ -29,7 +29,7 @@ import cv2
import time
from .comm import SocketCommunicator, Message
from .models import get_model
from .config import get_system_prompt_content, get_comm_type
from .config import get_system_prompt_content, get_comm_type, get_backend_worker_port
# Set PyTorch CUDA memory management
os.environ['PYTORCH_CUDA_ALLOC_CONF'] = 'expandable_segments:True'
......@@ -253,9 +253,8 @@ def worker_process(backend_type: str):
print(f"DEBUG: Starting Analysis Worker for {backend_type}...")
print(f"DEBUG: Worker PID: {os.getpid()}")
# Workers always use Unix sockets for interprocess communication
from .compat import get_socket_path
comm = SocketCommunicator(socket_path=get_socket_path('worker'), comm_type='unix')
# Workers use TCP for interprocess communication
comm = SocketCommunicator(host='localhost', port=get_backend_worker_port(), comm_type='tcp')
comm.connect()
print(f"Analysis Worker connected to backend")
......
......@@ -27,7 +27,7 @@ import shutil
import json
import time
from .comm import SocketCommunicator, Message
from .config import get_comm_type
from .config import get_comm_type, get_backend_worker_port
def train_model(train_path, output_model, description):
"""Perform training."""
......@@ -49,9 +49,8 @@ def worker_process(backend_type: str):
"""Main worker process."""
print(f"Starting Training Worker for {backend_type}...")
# Workers always use Unix sockets for interprocess communication
from .compat import get_socket_path
comm = SocketCommunicator(socket_path=get_socket_path('worker'), comm_type='unix')
# Workers use TCP for interprocess communication
comm = SocketCommunicator(host='localhost', port=get_backend_worker_port(), comm_type='tcp')
comm.connect()
# Register with backend
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment