Tema 11 · Eilės ir procesoriai
Eilės, prioritetai ir procesoriai
Parodysiu, kaip Automation, Email ir Reporting užduotys skiriasi eilėmis ir kodėl tai keičia laukimo laiką.
Struktūra
- Užduotys skirstomos į atskiras eiles pagal rūšį: Automation, Email Template, Reporting.
- Kiekviena eilė skirstoma į mažesnes eiles pagal prioritetą (pvz. HIGH / MEDIUM / LOW).
- Skirtingas eiles aptarnauja atskiri procesai — užduotys skirtingose eilėse gali vykti lygiagrečiai.
Procesoriai vienoje eilėje
| Procesorių skaičius |
Rezultatas |
| 1 |
Užduotys toje eilėje vykdomos nuosekliai. |
| > 1 |
Toje pačioje eilėje kelios užduotys gali vykti lygiagrečiai. |
Kaip sutrumpinti laukimą iki vykdymo pradžios
- Dedikuotos eilės — tam tikros užduotys nukreipiamos į atskiras eiles, apeina bendroje eilėje laukiančius darbus.
- Daugiau procesorių prie pasirinktų eilių — daugiau lygiagretumo toje eilėje.
Čia noriu pabrėžti: greičiau paleisti padeda dažniausiai konfigūracija ir eilės, ne tik trumpesnis JavaScript.
Techninis kontekstas: ryšys su pranešimų sluoksniu
Architektūroje foninės operacijos (įskaitant didelį eksportą) dažnai eina per Artemis ir susijusias paslaugas — žr. temą apie kelius ir asinchroninį eksportą.
Teorijos santrauka
- Skirtingos užduotys — skirtingos eilės (Automation, Email, Reporting).
- Prioritetai ir procesorių skaičius lemia lygiagretumą toje pačioje eilėje.
- Laukimo laiką dažnai trumpina konfigūracija, ne tik trumpesnis JavaScript.
Praktika salėje
Vienas realus klausimas: „Kodėl ši užduotis laukė ilgiau nei kita?“ — klasifikuokite pagal eilės tipą ir prioritetą.
Savarankiškas darbas
- Užrašykite du siūlymus klientui (eilės dedikavimas arba daugiau procesorių) su vienu sakiniu argumento kiekvienam.
- Palyginkite su Tema 9: kur problema sesijos/atminties ribose, o kur — eilėje.
Kodo pavyzdys: diagnostika prieš sunkų foną (pseudo)
await log.info("Pradedu partiją: " + initial.ids.length + " id");
// ... mutate / eilė ...
await log.info("Partija baigta");
Jei vartotojas klausia „kodėl ilgai“ — pirmiausia žiūrėkite eilės tipą ir šį žurnalą, tada Temos 9 ribas.