nomadcode/agent-ops/rules/project/domain/scheduler/rules.md
2026-05-19 10:27:13 +09:00

39 lines
1.2 KiB
Markdown

# scheduler
## 목적 / 책임
River 기반 task enqueue, worker 실행, task 완료/실패 처리, notification 흐름을 담당한다.
## 포함 경로
- `internal/scheduler/` — River client, worker, job args
- `internal/notification/` — task notification 모델과 서비스
## 제외 경로
- `internal/workflow/` — enqueue 가능 상태 판단
- `internal/storage/` — DB query wrapper
- `internal/http/` — API 요청 처리
## 주요 구성 요소
- `Client` — River client wrapper
- `TaskWorker` — task job 실행 worker
- `TaskJobArgs` — River job payload
- `notification.Service` — task 상태 알림 처리
## 유지할 패턴
- workflow는 `TaskEnqueuer` 인터페이스로 scheduler를 호출한다.
- River migration/start/stop 책임은 scheduler client 안에 둔다.
## 다른 도메인과의 경계
- **workflow**: enqueue 요청과 상태 전이 정책은 workflow가 결정한다.
- **persistence**: task 상태 저장은 Store 경계를 통해 수행한다.
- **adapters**: 실제 외부 알림 연동은 adapters 도메인과 분리한다.
## 금지 사항
- worker에 HTTP handler 로직을 넣지 않는다.
- scheduler에서 SQL query를 직접 호출해 Store 경계를 우회하지 않는다.