트랜잭션 이메일과 SMS
가입, 영수증, 재설정 메시지를 웹 앱이 큐에 넣고 워커 풀이 발송합니다.
워커가 죽어도 작업을 잃지 않는 FIFO 큐로, 생산자와 소비자가 병렬로 실행됩니다.
어떤 서비스든 소비자를 기다리지 않고 작업을 추가합니다.
실제 HotKV 명령과 예시 응답으로 구성된 애니메이션 안내입니다. 원하는 단계를 클릭하면 해당 단계로 이동합니다. 명령과 응답은 HotKV에서 입력하고 보는 그대로 영어로 표시됩니다.
이메일, 이미지 크기 조정, 웹훅 같은 백그라운드 작업에는 작업을 만드는 코드와 처리하는 코드 사이에 큐가 필요합니다. 워커가 작업 도중 충돌할 때 작업을 잃는 큐는 큐가 없는 것보다 나쁩니다. 작업이 사라진 것을 아무도 알아차리지 못하기 때문입니다.
리스트는 간단한 FIFO 큐를 제공합니다. BLMOVE는 각 작업을 워커에 넘기는 순간 처리 리스트로 옮기므로, 워커가 사라져도 진행 중인 작업은 항상 어딘가에 저장되어 있습니다. 생산자와 소비자는 병렬 워커 스레드가 처리합니다.
어떤 서비스든 소비자를 기다리지 않고 작업을 추가합니다.
LPUSH queue:emails "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"BLMOVE는 작업이 생길 때까지 대기한 뒤, 한 단계로 작업을 처리 리스트로 옮깁니다.
BLMOVE queue:emails queue:emails:processing RIGHT LEFT 0이메일이 발송되었습니다. 작업이 처리 리스트에서 제거됩니다.
LREM queue:emails:processing 1 "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"워커 2가 작업 도중 죽습니다. 그 작업은 사라지지 않고 처리 리스트에 남아 있습니다.
LRANGE queue:emails:processing 0 -1모니터가 방치된 작업을 큐로 되돌리고, 다른 워커가 가져갑니다.
LMOVE queue:emails:processing queue:emails LEFT RIGHT가입, 영수증, 재설정 메시지를 웹 앱이 큐에 넣고 워커 풀이 발송합니다.
업로드된 파일은 썸네일 생성과 트랜스코딩을 위해 큐에 들어가며, 트랜스코더가 충돌해도 파일을 절대 놓치지 않습니다.
발신 웹훅을 큐에 넣고 재시도하므로, 이를 트리거한 요청을 막지 않습니다.
LPUSH와 BRPOP을 사용하며, 워커는 작업이 들어올 때까지 대기합니다.
LPUSHBRPOPBLMOVE가 각 작업을 원자적으로 처리 리스트에 넘깁니다.
BLMOVELREM생산자와 소비자는 병렬 워커 스레드가 처리합니다.
확인 응답, 컨슈머 그룹, 재생이 필요하면 스트림을 사용하십시오.
XADDXREADGROUPBLMOVE로 작업을 가져가면 작업은 처리 리스트에 남습니다. 모니터가 너무 오래 머문 작업을 큐로 되돌릴 수 있습니다.
아닙니다. BRPOP과 BLMOVE는 작업이 도착할 때까지 대기하며, 선택적으로 타임아웃을 지정할 수 있습니다.
리스트는 가장 간단한 큐입니다. 스트림은 컨슈머 그룹, 메시지별 확인 응답, 기록을 더합니다. 이벤트 스트리밍 사용 사례를 참고하십시오.