작성
·
371
0
궁금한점이 있습니다. 실패에 대한 처리를 폴링방식으로하면, 고객에게 바로바로 알릴 수 없지 않나요?
만약에 100개 쿠폰을 선착순으로 발급해야하는데,
그 중에 51개 쨰에서 발급중 실패가 된다면?
제가 생각된 건
재처리
재처리동안은 나머지 사용자는 대기하는가?
실패에 대한 처리를 실패 테이블에 인서트
나머지 쿠폰 발급
그렇다면 발급된 총 쿠폰의 수는 100개 이지만 51번째 고객 처리는?
궁금합니다!
답변 1
0
박경훈님 안녕하세요.
좋은질문 감사합니다!
재처리 시도시에 컨슈머가 1개이고 concurrency 가 1이라면 나머지 사용자는 대기하게 됩니다.
실패에 대한 처리를 실패 테이블에 insert 한다면 51번째를 제외한 99개가 발급이 되게 될 것이고, 이후에 재시도를 통하여 51번째 사용자에 대해서 발급해줄 수 있게 됩니다.
토픽에 들어온 데이터는 쿠폰이 발급 되야 하는 대상자들이고, 발급 대상자들은 api 에서 판별이 되게 되므로 결과적으로 100개의 쿠폰이 발급되게 됩니다.
질문이 있으시면 답글 혹은 질문 남겨주세요!
감사합니다.
말씀하신 내용 중 'concurrency'가 무엇을 의미하는지 잘 모르겠습니다..!