-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
Description
문제 상황
서비스 정책 : 레포지토리 등록과 동시에 3개의 PR을 분석해준다
과정
- 레포지토리로부터 10개의 PR 목록을 가져옴
- PR 중 본인이 작성한 것을 최대 3개 분석하는 이벤트를 동시에 발행한다
- 이벤트 수신 시, AI 에게 PR 정보를 기반으로 질문을 생성한다
문제 원인
- Ai 비용은 각 월을 기준으로 조회됨 (2025-8)
- 만약 해당 월의 비용이 없다면 저장 후 반환함
@Override
public AiCharge getByYearAndMonth(int year, int month) {
return chargeJpaRepository.findByYearAndMonth(year, month)
.orElseGet(() -> {
AiCharge initializeCharge = new AiCharge(year, month, BigDecimal.ZERO);
return chargeJpaRepository.save(AiChargeEntity.from(initializeCharge));
}).toDomainEntity();
}- 만약 해당 월의 AI 비용이 아직 저장되어 있지 않고 + 레포를 등록하면 => 동시에 3개의 질문 분석 이벤트가 발행됨
- 질문 분석 후, 해당 월의 AI비용을 탐색할 때 트랜잭션 범위에 따라 AI 비용을 3개의 트랜잭션 모두 찾지 못하여 모두 새로운 AiCharge를 만들어 저장 시도
- 한개 트랜잭션의 AICharge는 저장되나, 나머지 AiCharge는 (year, month) 유니크 조건으로 인해 AiCharge 가 저장되지 못함
- 2개의 PR이 분석되지 못하는 결과를 얻게 됨

Reactions are currently unavailable