Laravel queue és háttérfeladatok: mikor és hogyan használd?
A queue leveszi a hosszú feladatot a böngésző kéréséről, így a felhasználó gyorsabban kap választ. A háttérbe küldött munka azonban nem válik automatikusan megbízhatóvá: felügyelet, újrapróbálás és hibakezelés kell hozzá.
A queue leveszi a hosszú feladatot a böngésző kéréséről, így a felhasználó gyorsabban kap választ. A háttérbe küldött munka azonban nem válik automatikusan megbízhatóvá: felügyelet, újrapróbálás és hibakezelés kell hozzá.
Jó jelölt a lassú, leválasztható munka
E-mail, képátalakítás, nagy import, riport és külső API hívás gyakran háttérbe tehető. A felhasználónak egyértelműen jelezd, hogy a folyamat elindult, de még nem feltétlenül fejeződött be.
Tervezd idempotensre a jobot
A worker leállhat a művelet közben, majd újrapróbálhat. A job ellenőrizze, elkészült-e már a számla, import vagy értesítés, és ugyanazzal az üzleti azonosítóval ne hozzon létre duplikátumot.
Korlátozd az újrapróbálást
Átmeneti hálózati hibánál hasznos a növekvő várakozás. Hibás bemeneti adatnál viszont száz próbálkozás csak terheli a rendszert. Különítsd el az átmeneti és végleges hibát.
A worker állapota legyen látható
Process supervisor, queue-mélység, failed job lista és riasztás szükséges. Telepítéskor a hosszú életű workert újra kell indítani, különben régi kódot futtathat.
Gyakorlati ellenőrzőlista
- leválasztható feladat
- idempotens végrehajtás
- backoff és próbálkozási limit
- failed job kezelése
- worker-monitorozás
Egy konkrét példa
Nagy CSV-importnál a fájl sorokra vagy kisebb csomagokra bontható. A felület mutathat feldolgozási állapotot, a hibás sor pedig külön javítható anélkül, hogy az egész import újraindulna.
Kapcsolódó útmutatók és szolgáltatások
Következő lépés
Ha egy kérés rendszeresen több másodpercig fut, mérd meg, mely lépés vár külső szolgáltatásra vagy nagy feldolgozásra. Ez mutatja meg, érdemes-e queue-ba helyezni. Kérj személyre szabott egyeztetést, vagy nézd meg az árkalkulátort.
Segítségre van szükséged?
Ha hasonló kihívással küzdesz, vagy egyedi fejlesztést szeretnél, beszéljük át a részleteket.
Ajánlatot kérek