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