Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrServiceNotRunning 서비스가 정상적인 실행 상태(Running)가 아닐 때(종료 절차 진행 중 또는 미시작) 반환하는 에러입니다. ErrServiceNotRunning = apperrors.New(apperrors.Unavailable, "서비스가 실행 상태가 아닙니다: 시스템이 종료 중이거나 아직 시작되지 않았습니다") // ErrNotifierNotFound 해당 알림 채널(Notifier)을 찾을 수 없거나, 설정 파일에 등록되지 않은 채널 ID가 요청되었을 때 반환하는 에러입니다. ErrNotifierNotFound = apperrors.New(apperrors.NotFound, "등록되지 않은 Notifier입니다. 설정 파일을 확인해 주세요") // Notification 서비스는 정상 실행 중이나, 특정 채널만 사용 불가능한 상태(Partial Failure)를 의미합니다. ErrNotifierUnavailable = apperrors.New(apperrors.Unavailable, "해당 Notifier가 사용 불가능한 상태입니다 (일시적 중단 또는 종료됨)") // ErrExecutorNotInitialized 서비스 시작 시 핵심 의존성 객체인 Task Executor가 올바르게 초기화되지 않았을 때 반환하는 에러입니다. ErrExecutorNotInitialized = apperrors.New(apperrors.Internal, "Executor 객체가 초기화되지 않았습니다") )
Functions ¶
func NewErrDefaultNotifierNotFound ¶
NewErrDefaultNotifierNotFound 설정 파일에 정의된 기본(Default) Notifier ID를 찾을 수 없을 때 반환하는 에러를 생성합니다.
func NewErrDuplicateNotifierID ¶
NewErrDuplicateNotifierID 설정 로딩 시 동일한 Notifier ID가 중복으로 감지되었을 때 반환하는 에러를 생성합니다.
func NewErrNotifierInitFailed ¶
NewErrNotifierInitFailed Notifier 인스턴스 생성 및 초기화 과정에서 예기치 않은 오류가 발생했을 때 반환하는 에러를 생성합니다.
Types ¶
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service 알림 발송 요청을 처리하고 Notifier들의 생명주기를 관리하는 구조체입니다.
func NewService ¶
func NewService(appConfig *config.AppConfig, creator notifier.Creator, executor contract.TaskExecutor) *Service
NewService Notification 서비스를 생성합니다.
func (*Service) Notify ¶
Notify 알림 메시지 발송을 요청합니다.
이 메서드는 일반적으로 비동기적으로 동작할 수 있으며(구현체에 따라 다름), 전송 요청이 성공적으로 큐에 적재되거나 시스템에 수락되었을 때 nil을 반환합니다. 즉, nil 반환이 반드시 "최종 사용자 도달"을 보장하는 것은 아닙니다.
매개변수:
- ctx: 요청의 컨텍스트 (Timeout, Cancellation 전파 용도)
- notification: 전송할 알림의 상세 내용 (메시지, 수신처, 메타데이터 등)
반환값:
- error: 요청 검증 실패, 큐 포화 상태, 또는 일시적 시스템 장애 시 에러를 반환합니다.
func (*Service) Start ¶
Start Notification 서비스를 시작하고 모든 Notifier를 초기화합니다.
이 메서드는 서비스의 전체 생명주기를 관리하는 핵심 진입점입니다.
각 Notifier는 독립적인 고루틴에서 실행되며, 하나의 Notifier에서 패닉이 발생하더라도 다른 Notifier의 동작에는 영향을 주지 않습니다. 서비스 종료 시에는 모든 Notifier가 안전하게 정리될 때까지 대기합니다.
매개변수:
- serviceStopCtx: 서비스 종료 신호를 전달받는 컨텍스트입니다. 이 컨텍스트가 취소되면 모든 Notifier의 정리 프로세스가 시작됩니다.
- serviceStopWG: 서비스 종료 시 모든 고루틴(Notifier 및 종료 처리 고루틴)이 완전히 종료될 때까지 대기하기 위한 WaitGroup입니다. 호출자는 이 WaitGroup을 통해 안전한 종료를 보장할 수 있습니다.
반환값:
- error: 초기화 실패, 중복 실행, 또는 설정 오류 시 에러를 반환합니다.
func (*Service) SupportsHTML ¶
func (s *Service) SupportsHTML(notifierID contract.NotifierID) bool
SupportsHTML 지정된 Notifier가 HTML 형식의 메시지 본문을 지원하는지의 여부를 반환합니다.