1.2 KiB
1.2 KiB
scheduler
목적 / 책임
River 기반 task enqueue, worker 실행, task 완료/실패 처리, notification 흐름을 담당한다.
포함 경로
internal/scheduler/— River client, worker, job argsinternal/notification/— task notification 모델과 서비스
제외 경로
internal/workflow/— enqueue 가능 상태 판단internal/storage/— DB query wrapperinternal/http/— API 요청 처리
주요 구성 요소
Client— River client wrapperTaskWorker— task job 실행 workerTaskJobArgs— River job payloadnotification.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 경계를 우회하지 않는다.