Synchronizácia spúšťania úloh zabezpečuje, aby sa naplánované úlohy s určitou nadväznosťou vykonávali v požadovanom poradí. Aby sa každá ďalšia úloha spustila až po úspešnom skončení predchádzajúcej.
Nastavenie takéhoto typu spúšťania naplánovaných úloh sa dá realizovať dvomi spôsobmi. Pomocou signálov alebo pomocou Triggerov. Signál a Trigger je prakticky len reťazec symbolov, ktoré si vy zvolíte. Rovnaký reťazec píšete v nastavení pre inicializáciu (odoslanie) a v mieste, kde sa má použiť.
Signál a Trigger sa líšia v spôsobe ako sa spustí naplánovaná úloha.
Signál – pri splnení podmienok sa čaká na znamenie (signál) aby sa mohla úloha spustiť. Analógia semaforu na križovatke – keď príde auto k semaforu (splní sa interval opakovania úlohy), čaká na zelenú kým môže prejsť (spustí sa naplánovaná úloha).
Trigger – pri spustení triggeru sa úloha ihneď spúšťa. Analógia spúšte na pištoli – v zásobníku sú pripravené náboje (v Scheduleri je nastavená úloha, ktorá nemusí mať žiaden interval opakovania) a keď stlačíte spúšť, vystrelí (úloha sa okamžite spustí).
Vyslanie Signálu aj Triggeru z naplánovanej úlohy je možné obmedziť na základe úspešného ukončenia úlohy, ktorá Signál alebo Trigger odosiela.
Nastavenie Signálov a Trigerrov v úlohách
Nastavenie odosielania Signálov a Triggerov sa realizuje vo vlastnostiach naplánovanej úlohy. Kliknete na úlohu pravým tlačidlom myši a zvolíte možnosť Task Properties.
Typické scenáre použitia Signálov a Triggerov:
- A. Blokovanie spustenia periodicky naplánovanej úlohy až kým sa úspešne neukončí predchádzajúca na základe prijatia signálu o úspešnom skončení predchádzajúcej úlohy.
- B. Spustenie naplánovanej úlohy kedykoľvek po skončení predchádzajúcej po prijatí Triggeru.
A. Spustenie úlohy signálom
V nastaveniach úlohy v záložke On Task Finish do políčka After task finish signalize signal(s) zadajte názov vášho signálu.
Ak v tomto prípade požadujete, aby sa ďalšia úloha spustila len keď táto skončí úspešne, označíte voľbu Only if task succeeded by ExitCode – vytvorenie triggeru po úspešnom ukončení naplánovanej úlohy na základe Exit kódu. Ako zvoliť ExitCode sa dočítate v odseku Ako zvoliť ExitCode.
Potom otvorte vlastnosti úlohy, ktorá má nasledovať a v záložke Conditions for Execution pridajte do poľa Wait for signals názov signálu, ktorý kým nebude prijatý, naplánovaná úloha nebude spustená.
B. Spustenie úlohy triggerom
Využitie triggeru je typické pre spustenie úlohy, ktorá sa má vykonať bezprostredne po prijatí triggeru. Napr. vymazanie staršej zálohy z disku po úspešnom vytvorení novej a pod.
V nastaveniach úlohy v záložke On Task Finish do políčka After task finish activate trigger(s) zadajte názov vášho triggeru.
Ak v tomto prípade požadujete, aby sa ďalšia úloha spustila len keď táto skončí úspešne, označíte voľbu Only if task succeeded by ExitCode – vytvorenie triggeru po úspešnom ukončení naplánovanej úlohy na základe Exit kódu. Ako zvoliť ExitCode sa dočítate v odseku Ako zvoliť ExitCode.
Potom otvorte vlastnosti úlohy, ktorá má nasledovať a v záložke General máte možnosť vybrať v spodnej časti Execute on Trigger, kde zadáte názov triggeru, ktorý kým nebude prijatý, naplánovaná úloha nebude spustená.
Trigger môžete aktivovať aj cez Watch pomocou akcií. V nastavení akcie watchu stačí zaškrtnúť možnosť vedľa zoznamu a z neho vybrať možnosť Activate Trigger. Do poľa zadáte názov.
Ako zvoliť ExitCode
Správne napísaný program by mal pri bezchybnom ukončení skončiť s návratovým kódom ExitCode = 0. V prípade výskytu chyby by mal byť návratový kód rôzny od nuly, pričom programátori by mali jednotlivým typom chýb priradiť konkrétne hodnoty ExitCode.
V niektorých prípadoch však môžete chcieť, aby sa určité chyby ignorovali a boli považované za bezchybný priebeh. Na tento účel slúži v nastavení naplánovanej úlohy možnosť Task succeeded if ExitCode =, kde môžete definovať, aké návratové kódy sa majú považovať za úspešné ukončenie úlohy.