Testování akcí s cyklovačem a terminací

Upravit obsah stránky

Při vývoji a ladění akcí, které obsahují cyklovač nebo terminaci, je nutné rozlišovat mezi chováním akce v běžném provozu a v ladicím (debug) či release režimu.
Flexideo pro tyto účely poskytuje mechanismus řízeného krokování, který umožňuje simulovat opakované běhy akce bez skutečného vytváření plánovaných úloh na serveru.

1. Chování cyklovače při krokování

Pokud je akce s cyklovačem spuštěna v režimu ladění (debug) nebo v režimu release s aktivním krokováním, platí následující:
    bullet

    Při dosažení fáze s cyklovačem se vytvoří záznam v tabulce x_scheduler, který slouží jako „košilka“ evidující jednotlivé průchody akce v rámci cyklu.

    bullet

    Do této tabulky se ukládají informace o každém spuštění, včetně času, výsledku a případné chyby.

    bullet

    Na rozdíl od běžného provozu se však nevytváří skutečná úloha na serveru, tzn. akce se sama neplánuje do fronty opakování.

    bullet

    Díky tomu lze akci ručně krokovat – tedy postupně provádět jednotlivé cykly, kontrolovat výsledky a ověřovat logiku opakování bez rizika, že se akce na pozadí spustí znovu.

Takový režim je ideální pro testování, ladění i kontrolu správného vyhodnocování podmínek cyklovače.
Umožňuje bezpečně simulovat průchod celým cyklem až do jeho konce, aniž by došlo k vytvoření automatického serverového jobu.

2. Chování terminace při krokování

Při testování akcí, které obsahují terminaci ( act:termination), je třeba postupovat odlišně:
    bullet

    Pokud je v daném průchodu akce podmínka terminace splněna, dojde při krokování k naplánování jedné další instance akce.

    bullet

    Ta se však může po potvrzení krokování skutečně spustit — tedy zahájit nový běh akce mimo krokovací režim.

    bullet

    Aby nedošlo k nechtěnému spuštění celé série běhů, je nutné akci v momentu vyhodnocení terminace ukončit ručně (tzv. “křížkem”), ještě před potvrzením naplánování další úlohy.

Zatímco cyklovač lze krokovat opakovaně až do úplného konce akce, terminace může při splněné podmínce přejít do reálného plánování.
Z tohoto důvodu se doporučuje při ladění terminací vždy sledovat log akce a krokování ukončit v okamžiku, kdy je terminace vyhodnocena pozitivně.

Srovnání chování akce při krokování a v běžném provozu

Prvek / situace Režim krokování (debug / release s krokováním) Běžný provoz (serverový běh)
Vytváření úlohy na serveru Nevytváří se žádná reálná úloha – akce je řízena ručně. Automaticky se vytváří záznam v plánovači a úloha se spouští podle plánu.
Záznam v x_scheduler Vytváří se při průchodu cyklovačem jako „košilka“ pro logování jednotlivých cyklů. Vytváří se automaticky při každém spuštění serverové úlohy.
Opakování cyklů Možno ručně krokovat po jednotlivých cyklech až do konce akce. Probíhá automaticky podle nastaveného intervalu cyklovače.
Vyhodnocení podmínky cyklovače Lze kontrolovat ručně po každém kroku a testovat různé vstupní scénáře. Probíhá plně automaticky při každém spuštění.
Vyhodnocení terminace ( act:termination) Pokud je podmínka splněna, hrozí naplánování reálné úlohy — akci je nutné ručně ukončit („křížkem“) před potvrzením. Při splnění podmínky se naplánuje další běh akce automaticky.



Bezpečnost testování 100% bezpečné – akce se nespouští mimo řízený průběh. Nutno počítat s reálným zpracováním dat a plánováním dalších úloh.

Doporučení pro testovací režim

    bullet

    Při testování cyklovače krokování používej k simulaci všech stavů podmínky (splněno / nesplněno).

    bullet

    Při testování terminace vždy sleduj log, a pokud dojde k jejímu vyhodnocení, nepokračujte v krokování – akci ukončíte ručně.

    bullet

    Po úspěšném otestování celé akce ověřte v databázi tabulku x_scheduler, zda nedošlo k vytvoření nežádoucích záznamů.