Přeskočit obsah

Cron – pravidelné úlohy

Cron v pravidelných intervalech volá zadanou adresu (URL) vašeho webu. Hodí se pro odesílání newsletterů, synchronizaci zboží, generování feedů, čištění cache a podobně.

Přidání úlohy

  1. V administraci otevřete sekci Cron a klikněte na Přidat úlohu.
  2. Název – popisný název, podle kterého úlohu poznáte, např. „WordPress cron“.
  3. Komentář – nepovinná poznámka.
  4. Cílová URL – zvolte https:// nebo http://, doplňte subdoménu (např. www) a cestu ke skriptu (např. /cron/task.php).
  5. Nastavení času – zvolte, kdy se má úloha spouštět (viz níže).
  6. Klikněte na Přidat úlohu.

Úloha se objeví v Seznamu CRON úloh s časováním a stavem.

Limity

Úlohu lze spouštět nejčastěji jednou za 15 minut. Celkový počet úloh je omezený a záleží na vašem rozvržení a nastaveném hostingovém tarifu.

Nastavení času

Pole Význam
Minuta ve kterou minutu se úloha spustí
Hodina * = každou hodinu, nebo konkrétní hodina (0–23)
Den * = každý den, nebo konkrétní den v měsíci
Měsíc * = každý měsíc, nebo konkrétní měsíc
Den v týdnu * = každý den v týdnu, nebo konkrétní den

Příklady

Kdy se má úloha spustit Minuta Hodina Den Měsíc Den v týdnu
každou hodinu (v :15) 15 * * * *
každý den ve 3:00 0 3 * * *
každé pondělí v 6:30 30 6 * * pondělí
1. den v měsíci v 1:00 0 1 1 * *

Náročné úlohy v noci

Importy, exporty a jiné náročné úlohy spouštějte v noci, kdy je na webu nejméně návštěvníků.

WordPress

WordPress spouští plánované úlohy při návštěvě webu, což zpomaluje načtení stránky. Lepší je předat je cronu:

  1. Do wp-config.php vložte řádek:
    define('DISABLE_WP_CRON', true);
  1. V administraci přidejte úlohu s cílovou URL https://www.vasedomena.cz/wp-cron.php a nastavte ji na co nejčastější spouštění (každých 15 minut).

Zabezpečení skriptu

Skript volaný cronem je dostupný z internetu a spustit ho může kdokoliv, kdo zná adresu. Chraňte ho tajným parametrem v URL, např. /cron/task.php?token=nahodny-retezec, který skript na začátku ověří:

if (($_GET['token'] ?? '') !== 'nahodny-retezec') {
    http_response_code(403);
    exit;
}

HTTPS jen s certifikátem

Pokud zvolíte https://, musí mít subdoména vystavený SSL certifikát. Jinak volání selže. Viz SSL certifikáty.