xclaim
XCLAIM
레디스 개발자 교육 신청 |
레디스 정기점검/기술지원 Redis Technical Support |
레디스 엔터프라이즈 서버 Redis Enterprise Server |
---|
미처리된 데이터를 처리하기
XREADGROUP으로 데이터를 읽은 후 애플리케이션이 다운되면 그 데이터는 처리되지 않은 상태로 남아있습니다.
XPENDING 명령으로 미처리(pending) 시간을 확인해서 다른 소비자에게 처리하도록 하는 명령이 XCLAIM입니다.
사용법은 XCLAIM key group consumer min-idle-time ID입니다.
Example
명령> | XCLAIM sensor-1234 cg-A C3 5000 1539035297138-0 |
결과> |
1) 1) 1539035297138-0 2) 1) "temperature" 2) "101" |
- 위 명령은 min-idle-time(pending time)이 5초 이상인 데이터를 처리합니다.
- XCLAIM 명령은 idle time을 0으로 설정합니다. 그러므로 두 번째 요청한 클라이언트는 데이터를 읽어가지 못합니다.
- 이 명령도 처리후에는 XACK로 처리가 완료되었음을 확인주어야 합니다.
기타 옵션들
여기서 설명하는 옵션들은 AOF 기록이나 클론(슬레이브)에게 전달할 목적으로 내부적으로 사용되는 것들입니다.
- IDLE <ms>: Idle 시간을 설정합니다. 생략하면 0으로 설정됩니다.
- TIME <ms-unix-time>: 의미는 idle 시간과 같지만 Unix 시작으로 설정합니다. AOF 기록시 사용합니다.
- RETRYCOUNT <count>: 읽은(delivered) 횟수를 설정합니다.
- FORCE: 강제로 팬딩된 데이터로 만듭니다. PEL(Pending Entry List)에 넣습니다.
- JUSTID: ID만 리턴합니다.
명령문
XCLAIM key group consumer min-idle-time ID [ID ...]
[IDLE ms] [TIME ms-unix-time]
[RETRYCOUNT count] [FORCE] [JUSTID]
- 이 명령은 version 5.0.0 부터 사용할 수 있다.
- 논리적 처리 소요시간은 O(log(N))이다. N은 팬딩된 데이터 수이다.
<< XPENDING | XCLAIM | XAUTOCLAIM >> |
---|
Email
답글이 올라오면 이메일로 알려드리겠습니다.