Skip to content

refactor: 배치 처리 최대 허용 시간 정의 및 Busy Counter 상태 유지 주기 동기화#224

Merged
Ji-minhyeok merged 5 commits into
developfrom
refactor/#221/decouple-participant-count-update
Apr 25, 2026
Merged

refactor: 배치 처리 최대 허용 시간 정의 및 Busy Counter 상태 유지 주기 동기화#224
Ji-minhyeok merged 5 commits into
developfrom
refactor/#221/decouple-participant-count-update

Conversation

@Ji-minhyeok
Copy link
Copy Markdown
Collaborator

🚀 작업 개요

트래픽 하에 배치 처리 시간과 Redis 상태 유지 시간(TTL) 사이의 불일치로 발생하는 정합성 결함을 해결했습니다.
시스템이 보장하는 최대 배치 처리 가능 시간을 10분으로 정의하고 모든 상태 관리 로직을 이 주기에 맞춰 재설계했습니다.

🛠️ 작업 내용

배치 처리 및 상태 유지 주기 동기화
(배치 작업 시작 - 끝)

  • 기존 60초의 TTL은 부하 상황에서의 배치 지연(실측 26초 이상)을 안정적으로 수용하기에 부족함을 확인했습니다.
  • 배치 처리에 최대 10분의 시간을 공식적으로 부여하고 Busy Counter의 TTL을 10분으로 설정하여 처리 중 상태가 보정 로직에 의해 오판되는 상황을 원천 차단했습니다.

정합성 보호 경계 설정
(배치 작업 끝 직후 - DB 반영)

  • Busy Conter가 0이 된 시점부터 DB에 실제 반영되기까지의 미세한 시차를 수용하기 위해 최종 활동(last_active) 기준 5초의 조건을 추가했습니다.

명시적 장애 규정 및 자가 회복

  • 10분을 초과하는 작업은 '비정상 프로세스'로 규정합니다. 이 경우 스케줄러가 상태를 초기화하고 보정을 강제 수행함으로써 장애 상황에서도 시스템이 스스로 정합성을 회복하도록 설계했습니다.

✅ PR 유형

  • 새로운 기능 추가
  • 코드 리팩토링

✅ Check List

  • 코드가 정상적으로 컴파일되나요?
  • 테스트 코드를 통과했나요?
  • merge할 브랜치의 위치를 확인했나요?
  • Label을 지정했나요?

🔗 관련 이슈

💬 기타 참고 사항

@Ji-minhyeok Ji-minhyeok self-assigned this Apr 25, 2026
@Ji-minhyeok Ji-minhyeok added the refactor refactor label Apr 25, 2026
@Ji-minhyeok Ji-minhyeok merged commit b54cb3a into develop Apr 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactor refactor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant