Ce face XACK / XPENDING
După ce un consumator termină de procesat un mesaj primit cu XREADGROUP, trimite XACK cu ID-ul lui. Mesajul este scos din lista de așteptare (PEL) a grupului și nu va mai fi livrat din nou.
XPENDING fără alte argumente dă un rezumat: numărul de mesaje neconfirmate, cel mai mic și cel mai mare ID și câte are fiecare consumator. Forma extinsă (start end count) listează mesajele, cu timpul de când așteaptă și de câte ori au fost livrate.
Parametri
| Parametru | Descriere |
|---|---|
key group |
Stream-ul și grupul. |
id ... |
ID-urile mesajelor confirmate (XACK). |
IDLE min-idle-time |
Doar mesajele neconfirmate de cel puțin atâtea milisecunde (Redis 6.2+). |
start end count [consumer] |
Forma extinsă a XPENDING. |
Ce returnează
XACK: numărul de mesaje confirmate (cele deja confirmate nu se numără). XPENDING: rezumatul sau lista mesajelor în așteptare.
Exemple
Exemplul 1: Confirmarea unei comenzi procesate
Al doilea XACK pe același ID întoarce 0, pentru că mesajul fusese deja confirmat.
XACK comenzi facturare 1792915200000-0
XACK comenzi facturare 1792915200000-0
Ieșire în redis-cli
127.0.0.1:6379> XACK comenzi facturare 1792915200000-0
(integer) 1
127.0.0.1:6379> XACK comenzi facturare 1792915200000-0
(integer) 0
Exemplul 2: Ce mesaje au rămas neconfirmate
A rămas un mesaj, la worker2.
XPENDING comenzi facturare
Ieșire în redis-cli
127.0.0.1:6379> XPENDING comenzi facturare
1) (integer) 1
2) "1792915260000-0"
3) "1792915260000-0"
4) 1) 1) "worker2"
2) "1"
Greșeli frecvente
XACKnu șterge mesajul din stream, doar îl scoate din PEL. Stream-ul se curăță cuMAXLEN,MINIDsauXTRIM.- Confirmă abia după ce procesarea a reușit; dacă confirmi înainte și workerul cade, mesajul se pierde.
Comenzi înrudite
XREADGROUP: Citește mesaje dintr-un stream ca membru al unui grup de consumatori; fiecare mesaj ajunge la un singur consumator.XGROUP CREATE: Creează un grup de consumatori pe un stream, astfel încât mai mulți workeri să-și împartă mesajele.XADD: Adaugă un eveniment (o intrare cu câmpuri și valori) la finalul unui stream Redis și întoarce ID-ul lui.