xesj.long_process
Tartalomjegyzék
alapok
-
Általános webes alkalmazás esetén egy gombra vagy linkre kattintáskor pár másodperc után az oldalon megjelenik
az eredmény. Ezt a működést várja el a felhasználó. Nem normális ha az alkalmazás válasza túl sok ideig tart.
Azonban mégis van olyan helyzet, amikor a program nagyon sok ideig dolgozik, például 5000 email-t kell egy
gombnyomásra elküldeni. Ezt nevezzük hosszan tartó folyamat-nak, vagyis long process-nek.
Ezt nem lehet úgy megoldani, hogy a böngésző homokórázik, amíg a folyamat tart, mert ebben a helyzetben
nem látszik hol tart a műveletek elvégzése, nem tudni mennyit kell még a végéig várni,
esetleg hiba keletkezik, vagy a hálózat megszakítja a http kapcsolatot.
-
A hosszan tartó folyamat kezelése úgy történhet, hogy egy gombnyomásra a folyamat az alkalmazáson belül
egy java thread-ben indul el, és az alkalmazás rögtön válaszol a felhasználónak hogy a folyamat elindult.
A felhasználó pedig az oldalon folyamatosan látja a folyamat státuszát, üzeneteit, haladását, melyet a
egy javascript modul meghatározott időközönként folyamatosan lekérdez a java thread-től.
A felhasználó gombok segítségével kéréseket küldhet a folyamatnak, például kérheti a megszakítását.
-
Egy hosszan tartó folyamat megvalósításához csak a hozzá tartozó speciális részeket kell megírni,
az általános részeket már tartalmazza a xesj.long_process package.
-
LongProcess osztály: Le kell származtatni, és csak az abstract metódusait megvalósítani.
-
Status enum: egy folyamat lehetséges státuszai.
-
Request enum: lehetséges kérések egy folyamathoz.
-
Permission enum: lehetséges jogosultságok egy folyamathoz.
folyamat jellemzői
-
id (azonosító)
Folyamat egyedi azonosítója. 1-től kezdődő egész szám.
Azért van rá szükség, mert egy alkalmazáson belül sok folyamat lehet.
-
name (név)
Folyamat megnevezése. Röviden leírja mit csinál a folyamat.
-
permission (jogosultság)
A lekérdező jogosultsága a folyamathoz.
-
start (indult)
Folyamat indításának az ideje.
-
end (befejeződött)
Folyamat befejeződésének/megszakításának ideje.
-
status (státusz)
Folyamat státusza. Lásd: Status enum.
-
message (üzenet)
A folyamat állandóan változó üzenete futás közben, mely a tevékenységéről tájékoztat.
-
progress (haladás)
Folyamat haladásának százalékos mértéke. Ha nem lehet meghatározni, akkor null.
-
log (napló)
A folyamat naplója. Tartalmazza az összes elvégzett tevékenységet.
Amennyiben nagyon sok az adat, akkor lehetséges, hogy csak azt tartalmazza melyik fájlban,
vagy adatbázisban vannak az információk.
-
trace (hiba)
Folyamat hibás befejeződése esetén a stack trace.
-
request (kérés)
Kérés a folyamathoz. Lásd: Request enum.
státusz - kérés
-
A státusz - kérés ábra jelmagyarázata:
- Fekete dobozok: folyamat státuszai
- Fekete nyilak: automatikus státusz váltás a folyamat futása közben
- Kék szövegek és nyilak: kérések a folyamat felé, lépjen át egy másik státuszba