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

  1. Dedikuotos eilės — tam tikros užduotys nukreipiamos į atskiras eiles, apeina bendroje eilėje laukiančius darbus.
  2. 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

  1. Užrašykite du siūlymus klientui (eilės dedikavimas arba daugiau procesorių) su vienu sakiniu argumento kiekvienam.
  2. 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.