nomadcode/agent-ops/rules/domain/core/scheduler/rules.md

1.2 KiB

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 경계를 우회하지 않는다.