Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Sequencer - záložka objektu PmSequencer

Popis:
Záložka slouží k nastavení základních parametrů objektu PmSequencer.
Konfigurační položky:
Maxim. počet položekMaximální počet položek, které mohou v objektu PmSequencer najednou čekat.

Tento konfigurátor nastavuje počáteční hodnotu vlastnosti MaxSize.

Hodnota -1 představuje neomezené množství položek. Omezení je vhodné pro zabránění projektantských chyb, kdy by počet čekajících položek mohl růst nade všechny meze.

Typ spouštění položekSmysl timeoutu. Timeout se zadává v metodě Add.
0 = položky se spouští nezávisle, každá podle svého timeoutu - Tzn. timeout je doba mezi zařazením položky (metodou Add) a jejím spuštěním (událostí onStep).
1 = položky se spouští postupně, timeout je prodleva mezi nimi - Tzn. timeout je doba mezi uvolněním předchozí položky a spuštěním následující položky.

Pokud při volání metody Add není v objektu žádná čekající položka a poslední položka byla spuštěna před větší dobou než je timeout, bude tato nová položka spuštěna okamžitě.

Použité vlákno (thread)Určení vlákna (threadu), ve kterém bude spouštěn skript události onStep. Volba "Nové pracovní vlákno" znamená, že tento objekt PmSequencer si při startu aplikace vytvoří nové vlákno dané priority. Viz také: Jak spouštět vybrané skripty v jiném vlákně (threadu).
Main = hlavní vlákno aplikace, ve kterém standardně běží i ostatní skripty
Normal = nové pracovní vlákno normální priority
BelowNormal = nové pracovní vlákno nižší priority
AboveNormal = nové pracovní vlákno vyšší priority.
Timeout při zastavování před ukončením pracovního vlákna [s]Platí pouze pro nové pracovní vlákno! Časový limit (timeout), po který systém při zastavování aplikace čeká na ukončení právě prováděné položky, po kterém dojde k násilnému ukončení pracovního vlákna (násilné ukončení je však nebezpečné a nežádoucí). Pokud se žádná položka právě neprovádí, nebo se právě prováděná položka stihla regulérně ukončit v daném časovém limitu, potom se pracovní vlákno ukončí regulérně (případné čekající položky ve frontě se ignorují). Pracovní vlákno lze při zastavování aplikace regulérně (bezpečně) zastavit jenom když se právě neprovádí žádná položka. Pokud se právě provádí, potom je nutno chvíli počkat, až se ukončí. Aby se nečekalo příliš dlouho (pokud došlo k nečekaně dlouhému provádění položky) existuje časový limit, po který bude systém čekat, než ukončí pracovní vlákno násilně.

Upozornění!Za normálních okolností by projektant měl zajistit, aby nedocházelo k násilnému ukončení požadavků (pracovního vlákna). Toho lze dosáhnout nejjednodušeji tím, že se nastaví dostatečný časový limit i pro nejdelší požadavek. Časově náročný požadavek lze často zkrátit tak, že při zastavení aplikace se nastaví uživatelská globální proměnná, indikující zastavování aplikace. A při zpracovávání požadavku potom tuto proměnnou testovat a v případě detekce zastavování aplikace požadavek předčasně ukončit a to i za cenu, že nebude proveden do konce. Toto je extrémně vhodné při dlouhých iteračních výpočtech nebo při zpracování jednotlivých položek velkého souboru dat.

Poznámka:
Upozornění! Použije-li se jiné vlákno (thread), pak přístup k ostaním objektům ze skriptu probíhá v jiném než hlavním vlákně a je nutno vzít v úvahu případné problémy se synchronizací při čtení a zápisu do Promotic objektů. Tato volba je vhodná zejména pro časově náročné výpočetní úkony na pozadí.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice