KinesisEventListener
Kinesis 이벤트 리스너. Spring ApplicationEvent로 발행된 AirScheduleEvent를 수신하여 Kinesis 스트림으로 전송.
클래스 정의
@Component
@Profile("!qa")
class KinesisEventListener(
private val airScheduleProducer: AirScheduleProducer
)메서드
produceAirSchedule()
@EventListener
fun produceAirSchedule(event: AirScheduleEvent)AirScheduleEvent 수신 후 Kinesis로 전송.
| 호출자 | 설명 |
|---|---|
| Spring ApplicationEventPublisher | 이벤트 발행 시 자동 호출 |
동작:
- CoroutineScope(Dispatchers.IO)로 비동기 실행
- withLaunch 유틸로 코루틴 실행
- AirScheduleProducer.produce() 호출
프로파일
| 프로파일 | 활성화 |
|---|---|
!qa | QA 환경 제외 |
이벤트 플로우
SearchScheduleEvent
│
├─► @EventListener 자동 감지
│
└──► produceAirSchedule(event)
│
├─► CoroutineScope(Dispatchers.IO)
│
└──► airScheduleProducer.produce(event)
의존성
| 의존성 | 용도 |
|---|---|
| AirScheduleProducer | Kinesis 스트림 전송 |
특징
- @EventListener: Spring 이벤트 자동 감지
- 비동기 처리: Coroutines IO 디스패처 사용
- QA 환경 제외: @Profile(“!qa”)로 QA 환경에서 비활성화
- withLaunch 유틸: 안전한 코루틴 실행 지원