Alap adatkezelésHáttérfeladatok

Feladatsorok

FIFO-sorok, amelyek nem veszítenek el feladatokat, ha egy munkavégző meghal, a termelők és fogyasztók párhuzamos futásával.

LPUSH/mp pipeline-nal, mérve
31.6M
elveszett feladat összeomláskor
0
lekérdezés (polling)
0
Lépés 1 / 5
A termelők feladatokat tolnak be

Bármely szolgáltatás munkát ad hozzá a fogyasztókra várakozás nélkül.

Példa munkamenetplaying
# A termelők feladatokat tolnak be
hotkv> LPUSH queue:emails "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"
(integer) 18

Animált bemutató valódi HotKV-parancsokkal és példa-válaszokkal. Kattintson bármelyik lépésre, hogy odaugorjon. A parancsok és a válaszok angolul maradnak, pontosan úgy, ahogy begépeli és látja őket a HotKV-ban.

A probléma

A háttérmunkák, például az e-mailek, a képátméretezés és a webhookok sorra szorulnak az őket létrehozó és az őket végző kód között. Az a sor, amely elveszít egy feladatot, ha egy munkavégző feladat közben összeomlik, rosszabb, mint a sor hiánya, mert senki nem veszi észre, hogy a feladat eltűnt.

Hogyan kezeli a HotKV

A listák egyszerű FIFO-sort adnak. A BLMOVE minden feladatot egy feldolgozási listára mozgat, amint egy munkavégzőhöz kerül, így a folyamatban lévő feladat mindig tárolva van valahol, ha a munkavégző eltűnik. A termelőket és a fogyasztókat párhuzamos munkaszálak szolgálják ki.

Lépésről lépésre

Mi történik, parancsról parancsra

  1. 01

    A termelők feladatokat tolnak be

    Bármely szolgáltatás munkát ad hozzá a fogyasztókra várakozás nélkül.

    LPUSH queue:emails "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"
  2. 02

    Egy munkavégző biztonságosan átvesz egy feladatot

    A BLMOVE blokkol, amíg elérhető egy feladat, majd egy lépésben egy feldolgozási listára mozgatja.

    BLMOVE queue:emails queue:emails:processing RIGHT LEFT 0
  3. 03

    Visszaigazolás, ha kész

    Az e-mail kiment. A feladat eltávolítódik a feldolgozási listáról.

    LREM queue:emails:processing 1 "{\"to\":\"ada@example.com\",\"tpl\":\"welcome\"}"
  4. 04

    Egy munkavégző összeomlik

    A 2. munkavégző feladat közben meghal. A feladata még a feldolgozási listán van, nem veszett el.

    LRANGE queue:emails:processing 0 -1
  5. 05

    Újrasorba állítás és folytatás

    Egy figyelő visszamozgatja az elhagyott feladatot a sorba, és egy másik munkavégző felveszi.

    LMOVE queue:emails:processing queue:emails LEFT RIGHT
Hol használható

Valós helyzetek

Tranzakciós e-mail és SMS

A regisztrációs, nyugtaküldő és jelszó-visszaállító üzeneteket a webalkalmazás sorba állítja, és munkavégzők csoportja küldi el.

Médiafeldolgozás

A feltöltések bélyegképkészítésre és átkódolásra várnak sorban, és egy összeomlott átkódoló sosem ejt el egy fájlt.

Webhook-kézbesítés

A kimenő webhookokat sorba állítják és újrapróbálják, anélkül hogy blokkolnák az őket kiváltó kérést.

Beépítve

Amit kap

FIFO blokkoló olvasásokkal

LPUSH a BRPOP-pal, a munkavégzők pedig alszanak, amíg munka érkezik.

LPUSHBRPOP

Nincs elveszett feladat

A BLMOVE atomikusan adja át minden feladatot egy feldolgozási listának.

BLMOVELREM

Párhuzamos termelők és fogyasztók

A termelőket és a fogyasztókat párhuzamos munkaszálak szolgálják ki.

Többre van szüksége?

Visszaigazolásokhoz, fogyasztói csoportokhoz és újrajátszáshoz használjon streameket.

XADDXREADGROUP

Gyakori kérdések

Mi történik egy feladattal, ha egy munkavégző összeomlik?

Ha a feladatokat BLMOVE-val veszi át, a feladat a feldolgozási listán marad. Egy figyelő visszamozgathatja a sorba azt, ami túl régóta van ott.

Lekérdezniük (pollozniuk) kell a munkavégzőknek?

Nem. A BRPOP és a BLMOVE blokkol, amíg egy feladat meg nem érkezik, opcionális időtúllépéssel.

Listák vagy streamek?

A listák a legegyszerűbb sor. A streamek fogyasztói csoportokat, üzenetenkénti visszaigazolást és előzményeket adnak. Lásd az eseménystreamelés felhasználási esetet.

Kapcsolódó felhasználási esetek

Próbálja ki a saját munkaterhelésén

A HotKV a Redis protokollt beszéli, így egy meglévő klienst ráirányíthat, és lefuttathatja ugyanezeket a parancsokat.