Cron skripty¶
Automatické úlohy spouštěné v definovaném časovém intervalu. Jednotlivé cron skripty jsou uloženy v adresáři app/cron.
Volání¶
Volání skriptu je možné z internetu pomocí URL routy CRON/{script}. Tyto URL jsou chráněny omezením přístupu dle IP adres.
Povolené IP adresy jsou definovány v .env:
Příklad¶
Zavolání cron skriptu app/cron/purge-sessions.php:
Nebo přes command line:
Bezpečnost¶
Spouštění je omezeno na:
- Vlastní server (127.0.0.1, ::1)
- Mediasolution servery
- Pevné IP adresy programátorů (definované v .env)
To zajišťuje, že cron skripty mohou být spuštěny pouze z důvěryhodných míst.
Struktura cron skriptů¶
Cron skripty jsou jednoduché PHP soubory v adresáři app/cron/:
<?php
declare(strict_types=1);
// Zde je logika cron skriptu
// Např. vymazání starých sessions, generování sitemapu, atd.
// Není třeba žádného výstupu, ale lze jej zapsat do logu
Integrace s CLI¶
Z CLI (Local) lze volat cron skripty přes console příkazy:
Příslušný command soubor zavolá cron skript:
<?php
// @description Purge sessions
declare(strict_types=1);
require DIR . '/app/cron/purge-sessions.php';
Běžné cron úlohy¶
- delete-cache - Kompletní smazání mezipaměti
- indexing - Indexování webu pro vyhledávání
- purge-cache - Vymazání staré mezipaměti
- purge-sessions - Vymazání starých sessions
- sitemap - Generování sitemap
Nastavení v systému¶
Pro pravidelné spouštění je nutné nastavit cron job na serveru:
# Každých 5 minut
*/5 * * * * curl -s http://localhost:8000/CRON/purge-sessions
# Každou noc v 2 hodiny
0 2 * * * curl -s http://localhost:8000/CRON/sitemap
Nebo přes PHP-CLI:
Monitoring¶
Lze přidat logování pro sledování spuštění cron skriptů: