cron.php?key=<secret> v pravidelných intervalech.
Architektura
JobInterface
Vestavěné joby
| Job | Frekvence | Účel |
|---|---|---|
AchievementCheckJob | hodinově | Kontrola a udělování achievementů |
RelayIngestJob | každých 5 min | Sklízí NDJSON relay logy z DayZ serveru |
AdmIngestJob | hodinově | Sklízí .ADM legacy logy |
WhitelistSyncJob | denně | Export schválených Steam ID na herní server |
PaymentCheckJob | každých 30 min | FIO Bank API → kontrola příchozích plateb |
UserRemovalJob | denně | Fyzické smazání účtů po grace period |
LogRetentionJob | týdně | Mazání logů starších než 30 dní |
cron.php
Lock
Soubor.cron.lock v rootu portálu drží exkluzivní zámek (PHP flock()). Pokud běží jiná instance, druhá ihned skončí (žádné čekání).
Manuální spuštění konkrétního jobu
&dry_run=1.
Logování
logs/cron.log— denní výstup runnerulogs/cron.error.log— výjimky a fatal errors
Core/CronLogger.php se postará o formát.
Crontab příklad
shouldRun() (např. denní job se spustí jen 1× denně).