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

박경훈님의 프로필 이미지

작성한 질문수

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

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

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

23.09.19 16:18 작성

·

361

0

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

 

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

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

 

제가 생각된 건

  1. 재처리

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

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

    1. 나머지 쿠폰 발급

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

 

궁금합니다!

답변 1

0

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

2023. 09. 20. 13:35

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

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

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

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

parkhs님의 프로필 이미지

2023. 10. 03. 21:58

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

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

2023. 10. 04. 00:10

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