Plánované úlohy
Systém WebToDate obsahuje možnost spouštění tzv. plánovaných úloh v čase. V zásadě se jedná o to, že určité vybrané funkce – bloky kódu (např. vygenerování jedné stránky apod.) lze řetězit do sekvencí a tyto sekvence spouštět buď ručně (v tom případě jde v podstatě o spuštění velmi jednoduchého makra) nebo plánovaně v nastavených časech. Základní sada připravených úloh je k dispozici s každou instalací WebToDate, některé úlohy se navíc přidávají s instalací vybraných modulů. Plánovač úloh navíc počítá s tím, že lze přidávat nové uživatelské úlohy podle potřeb daného projektu.
Z hlediska programátora se jedná o vytváření bloků PHP kódu, pro který platí jistá pravidla (způsob předávání proměnných a informací o chybách) a ve kterých lze využít určité připravené knihovny. Takto vytvořené úlohy se pak registrují do systému. K nastavování parametrů, plánování a spouštění sekvencí úloh již existuje www rozhraní přímo v administračním rozhraní WebToDate.
Ve funkci Plánovač úloh se používá následující terminologie:
- Úloha – dále nedělitelný blok programového kódu, který vykonává nějakou činnost (např. vygenerování jedné stránky, spuštění jedné akce apod.)
- Sekvence – zřetězení úloh, které definuje pořadí vykonávání těchto úloh a případně jejich vzájemnou závislost. Nejjednodušší sekvence může přirozeně sestávat z jediné úlohy.
- Časování – předpis definující, kdy a jak se má daná sekvence spouštět v čase (jednorázově, periodicky apod.).
Pomocí plánovaných úloh lze provádět např. následující činnosti:
- Periodické importy či exporty dat
- Periodické změny určité části webu a případné přegenerování stránek
- Rozesílání e-mailových upozornění v určených časových intervalech
Jednoduchým příkladem může být např. úkol, kdy chceme na úvodní stránku umístit údaj o tom, která osoba má ten den svátek. Informace se mění jednou denně a lze ji měnit automaticky, vhodným nástrojem je plánovaná úloha. Postup v tomto případě je zhruba následující:
- Založí se pevně jedna databázová tabulka naplněná údaji o jmeninách. Tyto údaje se nemění, není tudíž třeba vytvářet nějaký administrační interface pro změny dat.
- Založí se HTML fragment, který se trvale umístí na úvodní stránku do určené oblasti a v jehož těle se nachází formátovaný HTML kód s údajem o jmeninách.
- Vytvoří se zákaznická plánovaná úloha, která z databáze načte údaj o tom, kdo má daný den svátek. Tato úloha načtená jména zformátuje do požadovaného HTML tvaru a výsledným kódem přepíše tělo fragmentu z předchozího kroku (na to je k dispozici knihovní funkce, která má za parametr ID fragmentu a přepíše tělo tohoto fragmentu).
- Vytvoří se v plánovači nová sekvence, která v prvním kroku spustí tuto zákaznickou úlohu, ve druhém kroku spustí úlohu pro generování úvodní stránky (tato úloha je standardní součástí instalace WebToDate).
- Sekvence se načasuje na spouštění každý den po půlnoci.
V tomto postupu se využívá v bodu 3. API pro plánované úlohy na vytvoření PHP kódu úlohy, ostatní kroky se provádí standardními prostředky přes rozhraní WebToDate.
Standardně dodávané plánované úlohy zahrnují např.:
- Úlohy pro export a import XML dat
- Expirační úlohu, která řeší vypršení platnosti obsahu, publikaci obsahu ve stanovený čas a nahrazování zpráv jejich novými verzemi ve stanovený čas
- Úlohu pro generování seznamu vybraných stránek
- Verifikační úlohu pro vyhledávání interních chyb implementace, nefunkčních odkazů apod.
- Úlohu pro rozesílání nových diskuzních příspěvků
- Úlohu pro promazávání cache dynamických stránek
- Úlohy pro odstraňování nepotřebných dat z databáze
V realizovaných projektech byly vytvořeny pomocí API pro plánované úlohy např. následující funkce:
- Stahování dat k importu z FTP serveru s následným promazáváním složek FTP serveru
- Synchronizace dat s DMS systémem (systémem pro správu dokumentů) používaným zákazníkem
- Úloha načítající data z webové služby burzy cenných papírů a generující tabulky s informacemi o obchodech na burze
- Úloha provádějící výměnu dat mezi databází WebToDate a aplikací typu e-shop provozované zákazníkem na jiném vzdáleném www serveru
- Úloha pro synchronizace vybraných dat zákaznického modulu z intranetového serveru na veřejně přístupný internetový portál