인프런 커뮤니티 질문&답변

박경훈님의 프로필 이미지

작성한 질문수

실습으로 배우는 선착순 이벤트 시스템

쿠폰을 발급하다가 에러가 발생하면 어떻게 하나요 ?

강사님 궁금한것이 있습니다.

작성

·

361

0

궁금한점이 있습니다. 실패에 대한 처리를 폴링방식으로하면, 고객에게 바로바로 알릴 수 없지 않나요?

 

만약에 100개 쿠폰을 선착순으로 발급해야하는데,

그 중에 51개 쨰에서 발급중 실패가 된다면?

 

제가 생각된 건

  1. 재처리

    1. 재처리동안은 나머지 사용자는 대기하는가?

  2. 실패에 대한 처리를 실패 테이블에 인서트

    1. 나머지 쿠폰 발급

    2. 그렇다면 발급된 총 쿠폰의 수는 100개 이지만 51번째 고객 처리는?

 

궁금합니다!

답변 1

0

최상용님의 프로필 이미지
최상용
지식공유자

박경훈님 안녕하세요.
좋은질문 감사합니다!

재처리 시도시에 컨슈머가 1개이고 concurrency 가 1이라면 나머지 사용자는 대기하게 됩니다.
실패에 대한 처리를 실패 테이블에 insert 한다면 51번째를 제외한 99개가 발급이 되게 될 것이고, 이후에 재시도를 통하여 51번째 사용자에 대해서 발급해줄 수 있게 됩니다.

토픽에 들어온 데이터는 쿠폰이 발급 되야 하는 대상자들이고, 발급 대상자들은 api 에서 판별이 되게 되므로 결과적으로 100개의 쿠폰이 발급되게 됩니다.

질문이 있으시면 답글 혹은 질문 남겨주세요!
감사합니다.

말씀하신 내용 중 'concurrency'가 무엇을 의미하는지 잘 모르겠습니다..!

최상용님의 프로필 이미지
최상용
지식공유자

앗, 1개의 스레드로만 작업을 한다는 의미로 말씀을 드린 것 이었습니다!