o2o-castad-scheduler/README.md

58 lines
1.5 KiB
Markdown

# o2o-ado2-scheduler
SNS 예약 업로드 스케줄러. 주기적으로 DB를 조회하여 예약 시간이 된 업로드 작업을 백엔드 내부 API로 트리거합니다.
---
## 실행
### 로컬
```bash
pip install uv
uv pip install -e .
python main.py
```
### Docker 단독 실행
```bash
docker build -t o2o-ado2-scheduler .
docker run --env-file .env o2o-ado2-scheduler
```
### Docker Compose (백엔드와 같은 네트워크)
```yaml
scheduler:
build: .
env_file: .env
networks:
- backend-network
restart: unless-stopped
```
> Docker Compose로 실행할 경우 `BACKEND_INTERNAL_URL`은 컨테이너 서비스명으로 설정합니다.
> 예: `BACKEND_INTERNAL_URL=http://castad-app:8000`
---
## 환경변수 (.env)
`.env.example`을 복사하여 사용합니다.
```bash
cp .env.example .env
```
| 변수 | 설명 | 예시 |
|------|------|------|
| `BACKEND_INTERNAL_URL` | 백엔드 서버 URL | `http://localhost:8000` (로컬) / `http://castad-app:8000` (Docker) |
| `INTERNAL_SECRET_KEY` | 내부 API 인증 키 (백엔드와 동일하게 설정) | `your-secret-key` |
| `MYSQL_HOST` | MySQL 호스트 | `localhost` (로컬) / `mysql` (Docker) |
| `MYSQL_PORT` | MySQL 포트 | `3306` |
| `MYSQL_USER` | MySQL 유저 | `root` |
| `MYSQL_PASSWORD` | MySQL 비밀번호 | `1234` |
| `MYSQL_DB` | MySQL 데이터베이스명 | `castad_test1` |
| `CHECK_INTERVAL_MINUTES` | 예약 업로드 체크 주기 (분) | `10` |