Go to file
AGX b34f088f7d 워커 자동 시작 스크립트 수정: 원격 실행을 위한 메인서버 IP 설정 추가 및 가상환경 활성화 확인 로직 추가 2025-07-17 13:33:28 +09:00
ImageTransWorker first commit 2025-07-17 13:24:38 +09:00
docker_root first commit 2025-07-17 13:24:38 +09:00
modules 워커 자동 시작 스크립트 수정: 원격 실행을 위한 메인서버 IP 설정 추가 및 가상환경 활성화 확인 로직 추가 2025-07-17 13:33:28 +09:00
re first commit 2025-07-17 13:24:38 +09:00
.gitignore first commit 2025-07-17 13:24:38 +09:00
Dockerfile first commit 2025-07-17 13:24:38 +09:00
ITServer.log first commit 2025-07-17 13:24:38 +09:00
MST_P2M_simp.onnx first commit 2025-07-17 13:24:38 +09:00
README.md first commit 2025-07-17 13:24:38 +09:00
README_WORKER.md first commit 2025-07-17 13:24:38 +09:00
REMOTE_SETUP.md 워커 자동 시작 스크립트 수정: 원격 실행을 위한 메인서버 IP 설정 추가 및 가상환경 활성화 확인 로직 추가 2025-07-17 13:33:28 +09:00
docker-compose.yml first commit 2025-07-17 13:24:38 +09:00
hawp_simp.onnx first commit 2025-07-17 13:24:38 +09:00
iop_start.sh first commit 2025-07-17 13:24:38 +09:00
lib64 first commit 2025-07-17 13:24:38 +09:00
main.py first commit 2025-07-17 13:24:38 +09:00
paddlepaddle_gpu-2.4.2-cp38-cp38-linux_aarch64.whl first commit 2025-07-17 13:24:38 +09:00
pyvenv.cfg first commit 2025-07-17 13:24:38 +09:00
requirements.txt first commit 2025-07-17 13:24:38 +09:00
requirements_no_paddle.txt first commit 2025-07-17 13:24:38 +09:00
start_worker.sh 워커 자동 시작 스크립트 수정: 원격 실행을 위한 메인서버 IP 설정 추가 및 가상환경 활성화 확인 로직 추가 2025-07-17 13:33:28 +09:00
test_image.png first commit 2025-07-17 13:24:38 +09:00
test_remote_connection.py 워커 자동 시작 스크립트 수정: 원격 실행을 위한 메인서버 IP 설정 추가 및 가상환경 활성화 확인 로직 추가 2025-07-17 13:33:28 +09:00
test_worker_client.py first commit 2025-07-17 13:24:38 +09:00
worker.py first commit 2025-07-17 13:24:38 +09:00
worker_backup.py first commit 2025-07-17 13:24:38 +09:00

README.md

이미지 처리 워커 시스템

메인서버와 분리된 독립적인 이미지 처리 워커 시스템입니다.

🏗️ 아키텍처

클라이언트 → 메인서버 (FastAPI) → Redis → 워커 시스템 (ImageProcessor)
  • 메인서버: 클라이언트 요청 중계, 인증, API 제공
  • 워커: 실제 OCR, 번역, 인페인팅 작업 처리
  • Redis: 작업 큐 및 결과 저장소

🚀 실행 방법

1. Docker 모드 (권장)

cd ~/work/worker-system
WORKER_MODE=docker ./start_worker.sh

2. 로컬 모드

cd ~/work/worker-system
WORKER_MODE=local ./start_worker.sh

3. 원격 모드

cd ~/work/worker-system
REDIS_URL="redis://메인서버IP:6379/0" WORKER_MODE=remote ./start_worker.sh

⚙️ 환경 변수

변수 설명 기본값
REDIS_URL Redis 서버 주소 redis://localhost:6379/0
MAIN_SERVER_HOST 메인 서버 주소 localhost
CONCURRENCY 동시 처리 작업 수 2
WORKER_MODE 실행 모드 docker

📋 사용 예시

로컬에서 실행

# 기본 설정으로 실행
./start_worker.sh

# 동시 처리 수 조정
CONCURRENCY=4 ./start_worker.sh

# 원격 메인서버에 연결
REDIS_URL="redis://192.168.1.100:6379/0" MAIN_SERVER_HOST="192.168.1.100" ./start_worker.sh

원격 서버에서 실행

# 원격 서버에 워커 시스템 배포
scp -r ~/work/worker-system user@remote-server:~/

# 원격 서버에서 실행
ssh user@remote-server
cd ~/worker-system
REDIS_URL="redis://메인서버IP:6379/0" WORKER_MODE=docker ./start_worker.sh

🔧 개발 모드

직접 실행

python worker.py --concurrency 2 --redis-url redis://localhost:6379/0

특정 큐만 처리

python worker.py --concurrency 1 --redis-url redis://localhost:6379/0

📊 모니터링

Flower를 통해 워커 상태를 모니터링할 수 있습니다:

🔄 자동 재시작

systemd를 사용한 자동 재시작 설정:

# /etc/systemd/system/image-worker.service
[Unit]
Description=Image Processing Worker
After=docker.service

[Service]
Type=forking
User=ckh08045
WorkingDirectory=/home/ckh08045/work/worker-system
Environment=WORKER_MODE=docker
Environment=REDIS_URL=redis://localhost:6379/0
ExecStart=/home/ckh08045/work/worker-system/start_worker.sh
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl enable image-worker
sudo systemctl start image-worker

🐛 문제 해결

Redis 연결 오류

  • 메인서버의 Redis가 실행 중인지 확인
  • 포트 6379가 열려있는지 확인
  • 방화벽 설정 확인

Docker 권한 오류

sudo usermod -aG docker $USER
newgrp docker

의존성 오류

pip install -r requirements.txt