WebToDate/Referenční/Plánovač úloh: Porovnání verzí
| Řádek 149: | Řádek 149: | ||
[[Image:referencniprirucka-planovaculoh-img165.png|center]] | [[Image:referencniprirucka-planovaculoh-img165.png|center]] | ||
Pokud je aktivována extenze [[../../Extenze/Extenze pro sledování počtu shlédnutí|Extenze pro sledování počtu shlédnutí]], ukládají se do databáze informace o čtenosti zpráv ve tvaru ID zprávy - datum kdy došlo k započtení shlédnutí - počet shlédnutí k danému dni (viz též [[../Statistiky shlédnutí|Statistiky shlédnutí]]). Jelikož tímto způsobem může značně narůstat objem databáze, je vhodné pomocí této úlohy sumarizovat starší údaje. Úloha ponechá původní data pouze za posledních x dní, starší údaje sečte do tvaru ID zprávy - celkový počet shlédnutí za všechny dny starší než x dní. | |||
=== Verifikace === | === Verifikace === | ||
Verze z 2. 6. 2011, 08:47
Možnosti plánování úloh
Některé úlohy v systému WebToDate, které se běžně provádějí interaktivně (tj. tím, že uživatel spustí nějakou funkci v administračním rozhraní), lze spouštět rovněž automaticky.
Typicky lze řešit např. následující situace:
- Chceme si připravit zítřejší podobu úvodní stránky, tuto stránku upravit a zprávy na ni přiřazené publikovat v určenou dobu v noci.
- Chceme načíst data z externí databáze (např. seznam výročí k danému datu) a tento seznam opět jednou za noc aktualizovat na vybrané stránce.
- Chceme automaticky aktualizovat (např. jednou za půl hodiny) úvodní stránku, na které se zprávy zobrazují pomocí seznamu, když redaktoři a editoři průběžně plní databázi zpráv a nechceme přidávat zprávy na stránku ručně.
- Chceme jednou za určený časový interval zkontrolovat konzistenci databáze zpráv a vyhledat nefunkční odkazy v databázi.
Tyto i další možnosti nabízí funkce Plánovač úloh. Funkce pracuje s následujícími pojmy:
- Úloha je dále nedělitelný prvek reprezentující jednu akci, kterou lze spouštět automaticky (např. vygenerování jedné stránky).
- Sekvence je seznam několika úloh v definovaném pořadí s možností definovat závislost ve smyslu chyb při vykonání (tj. zda se má či nemá úloha 2 vykonat, pokud se úlohu 1 vykonat nepodařilo).
- Časování je předpis, kdy a jak často se má sekvence vykonávat. Časují se zásadně sekvence (i když obsahují jen jednu úlohu); každá sekvence může mít nastaveno více časování.
Definování sekvencí
Definovat plánované úlohy mohou pouze administrátoři. Příkazem Administrace – Plánovač úloh se v pravé části nahoře zobrazí seznam plánovaných úloh s položkami
- Název sekvence
- Popis – k čemu daná sekvence slouží
- Stav – zobrazuje ikonou, zda je daná sekvence aktivní (tj. zda alespoň jedno její časování je aktivní a tím pádem se automaticky spouští)
- Poslední změny – kdy byla provedena poslední změna v definici sekvence
Ve spodní části se pak zobrazuje formulář pro přidávání resp. úpravy sekvencí. Formulář je rozdělen na záložky Obecné (název sekvence a popis), Úlohy (seznam úloh v sekvenci) a Časování (seznam časování dané sekvence). Vybranou sekvenci lze ručně spustit z tohoto rozhraní tlačítkem Spustit.

Při založení nové sekvence nejprve vyplňte pole Název sekvence a Popis. V záložce Úlohy pak definujte seznam úloh v dané sekvenci. V této záložce se zobrazuje seznam úloh v pořadí, v jakém se budou vykonávat. Význam jednotlivých sloupců v tomto seznamu je:
- Sloupec Krok – automatické číslování pořadí úloh
- Úloha – zobrazuje se zde typ úlohy (např. Generování stránky), odkazem přidat se přidává nová úloha do sekvence.
- Ve třetím sloupci jsou v každém řádku dvě ikony, pomocí nichž lze v seznamu úlohu posouvat směrem nahoru či dolů a tím definovat pořadí vykonávání úloh.
- Ve čtvrtém sloupci je ikona, pomocí které lze odstranit danou úlohu z upravované sekvence.
- Do sloupce Popis zadejte svůj popis úlohy (např. Generování úvodní str.).
- V posledním sloupci Závislost lze definovat, na kterých předchozích úlohách v dané sekvenci je vybraná úloha závislá. Pokud je úloha B závislá na úloze A a při vykonání úlohy A dojde k chybě, úloha B se nespustí. V tomto sloupci lze zadat buď zkrácené volby Na všech, nebo Na žádném (tj. úloha je závislá na všech předchozích krocích nebo na žádném), nebo existuje třetí volba Podrobně. Při zvolení této možnosti se zobrazí v tomto řádku tlačítko Nastavit, které v novém okně zobrazí seznam úloh předcházejících dané úloze. Tam lze zaškrtnout, na kterých úlohách je vybraná úloha závislá.
Pomocí odkazu Přidat (resp. klepnutím na název úlohy ve druhém sloupci) se otevře dialog pro přidání resp. úpravu parametrů nové úlohy. Nahoře v tomto okně se nachází rozevírací nabídka se seznamem úloh nainstalovaných v systému. Výběrem typu úlohy se mění zbylá část okna, kde se nastavují parametry úlohy, protože každý typ úlohy má jiný počet a význam parametrů. Například úloha pro generování jedné stránky má tyto parametry:
- která stránka se má generovat
- zda se zprávy umístěné na stránce a nacházející se ve stavu Schváleno mají nejprve přepnout do stavu Publikováno
- zda se má generovat i podstrom stránek
Jiné úlohy mají jiný počet a význam parametrů.
Časování sekvencí
V záložce Časování lze vytvořit jednu nebo více definic toho, kdy a v jakém intervalu se daná sekvence spouští. Seznam se ovládá analogicky jako seznam úloh, na pořadí definic v seznamu časování nezáleží. Odkazem přidat (resp. klepnutím na název časování) se v dialogovém okně zobrazí formulář pro definici časování.

V tomto formuláři lze nastavit libovolné kombinace podmínek, např. pouze jednou s konkrétním datem a časem, každou středu a neděli v daný čas, každý třetí den v měsíci, jednou za pět minut a podobně. Neopomeňte každé definici časování zadat název a stav, zda je aktivní, nebo ne.
Spouštění plánovaných úloh
Způsob automatického spouštění
Technicky je časování spouštění řízeno jedním dávkovým příkazem, který se zadá jednou (manuálně) při instalaci do cronu nebo scheduleru. Tento příkaz v zásadě periodicky kontroluje soubor schedule.xml, kde jsou zapsány všechny předpisy pro spouštění sekvencí v čase, a pokud nalezne nějakou sekvenci, kterou je třeba spustit, vykoná to.
Perioda kontroly toho, zda se má spustit nějaká úloha, je standardně jedna minuta, ale může být změněna. To znamená, že funkce musí být schopna najít sekvence, které je třeba spustit v průběhu následujících deseti minut apod.
Ochrana před přetížením serveru
Dávkový příkaz spouštění z cronu se skládá ze dvou úloh:
- Úloha pro plánování
- Úloha pro spouštění
Úloha pro plánování zjišťuje podle předpisu uvedeného v schedule.xml, zda je třeba spustit nějakou sekvenci. Pokud něco takového zjistí, sekvenci přímo nespouští, ale zapíše ji do fronty sekvencí k vykonání.
Úloha pro spouštění postupně spouští sekvence nalezené ve frontě sekvencí, do které je zapsala první úloha.
Ochrana proti přetížení je přitom řešena následovně:
- Sekvence spouští pouze úloha pro spouštění, která může spustit pouze jednu sekvenci v daný čas. Až sekvence doběhne, může spustit další sekvenci nalezenou ve frontě.
- Pomocí semaforu ve formě zápisu do databáze je řešeno to, aby systém nemohl spustit úlohu pro spouštění víckrát než jednou. Úloha pro spouštění na začátku v semaforu nastaví příznak, že je spuštěna a na konci tento příznak odstraní. Pokud by mezitím došlo k tomu, že se z cronu opět zavolá dávkový příkaz, který spouští úlohu pro spouštění, před spuštěním této úlohy se zjistí, že jiný proces této úlohy již běží a dál se nepokračuje.
Volání úloh
V adresáři scheduler je soubor pro shell OS, čili cron.sh pro UNIX, cron.bat pro Windows. Spouštění tohoto souboru je třeba zadat do příslušného spouštěcího stroje, čili do cronu nebo Windows scheduleru.
Soubor obsahuje dva řádky, jeden pro spuštění úlohy pro plánování, druhý pro úlohu pro spouštění, čili např.
@echo off
php.exe -d html_errors=false sch_planner.php "%1"
php.exe -d html_errors=false sch_runner.php
Pokud se v cronu nastaví, že úloha se nespouští jednou za minutu, ale v delší periodě, je třeba dát za jméno souboru (v položce cronu) parametr – interval spouštění v minutách, který se přenese jako parametr do skriptu pro úlohu pro plánování.
Ruční spouštění úloh
Úlohy lze spouštět také ručně pomocí tlačítka Spustit. Po provedení příslušných úloh se objeví formulář Výsledky informující o úspěšnosti jednotlivých kroků.
Popis základních úloh
Následující úlohy jsou součástí základní instalace WebToDate, některé úlohy jsou ale obsaženy pouze ve variantě Enterprise.
Akce
Tato úloha umožňuje spouštět určitou akci. Parametr Generovat stránku umožňuje přegenerovat odpovídající stránku, další parametr pak dovoluje automaticky převést schválené zprávy do stavu Publikováno.

Export XML a Import XML
Tyto úlohy zajišťují automatický import či export dat (zpráv) ve formátu XML. Podrobný popis je uveden v příručce k modulu XML.
Expirace
Tato úloha řídí časovou platnost zprávy podle časových hodnot nastavených ve formuláři Zprávy (Publikovat dne a Vyprší dne). Nastaví zprávy do příslušného stavu Publikováno, Archivováno nebo Vypršelo a přegeneruje odpovídající stránky.
Pomocí parametru Počet dnů lze nastavit, zda má být zpráva po určité době smazána. Podmínkou pro mazání zpráv je:
- Zpráva (nebo zdroj, fragment) je ve stavu Vypršelo
- Rozdíl mezi časem poslední aktualizace a aktuálním časem je větší nebo roven než zadaný počet dnů.
Pomocí parametru SQL seznamy se volí, zda mají být přegenerovány i stránky s SQL seznamy.
Parametr Odstraňovat archivované zprávy ze stránek specifikuje, zda se zprávy po přechodu do stavu Archivováno ze stránek odstraňují. Zprávy přecházející do stavu Vypršelo se ze stránek odstraňují automaticky vždy.

Generování stránky
Úloha umožňuje vygenerovat vybranou stránku a případně automaticky převést schválené zprávy vložené ručně na generovanou stránku do stavu Publikováno. To znamená, že pokud se generuje stránka, zpráva je vložena do nějaké oblasti (individuálně, nikoli jako seznam zpráv) a je ve stavu Schváleno, tato volba způsobí její publikaci a zobrazení na stránce.
Prostřednictvím volby generovat včetně podstromu budou generovány i všechny podstránky.

Informační mail
Odešle na vybranou e-mailovou adresu informaci o výsledcích předešlých kroků.

Jako parametry se zadávají e-mailové adresy příjemce a odesílatele.
Sumarizace počtu zhlédnutí
Úloha umožňuje po určité době automatické sečtení počtu zhlédnutí zpráv (udává se ve dnech).

Pokud je aktivována extenze Extenze pro sledování počtu shlédnutí, ukládají se do databáze informace o čtenosti zpráv ve tvaru ID zprávy - datum kdy došlo k započtení shlédnutí - počet shlédnutí k danému dni (viz též Statistiky shlédnutí). Jelikož tímto způsobem může značně narůstat objem databáze, je vhodné pomocí této úlohy sumarizovat starší údaje. Úloha ponechá původní data pouze za posledních x dní, starší údaje sečte do tvaru ID zprávy - celkový počet shlédnutí za všechny dny starší než x dní.
Verifikace
Úloha zajišťuje automatické provedení určitých kontrol modulu Verifikace.
Výběr jednotlivých kontrol se provádí prostřednictvím zaškrtávacích polí. Podrobný popis je uveden v příručce modulu Verifikace.

Uživatelské úlohy
Kromě popsaných úloh lze definovat uživatelské úlohy, tj. úlohy, které nejsou standardní součástí dodávky WebToDate. Tyto práce ovšem vyžadují znalost programování. Pokud potřebujete v této oblasti pomoci, obraťte se na výrobce systému WebToDate.
Další úlohy
Další úlohy, které jsou k dispozici, mohou být součástí dodávaných WebToDate modulů či rozšíření, viz Přehled plánovaných úloh.