Přeskočit na hlavní obsah

Naplánované akce (Scheduled Jobs)

Naplánované akce jsou automatické úlohy, které běží na pozadí systému v pravidelných intervalech. Tyto úlohy zajišťují automatizaci důležitých procesů jako kontrola emailů, čištění databáze, zpracování workflow a další klíčové operace.

Přístup k naplánovaným akcím

  1. Přihlaste se jako administrátor
  2. Klikněte na Administrace (Administration)

Ikona Administrace

  1. Otevře se administrační panel

Přístup do administrace

  1. V levém menu přejděte do sekce Systém (System)
  2. Vyberte Naplánované akce (Scheduled Jobs)

Seznam naplánovaných akcí

Zobrazí se seznam všech naplánovaných akcí v systému s informacemi o jejich stavu, posledním běhu a dalším plánovaném spuštění. Zde můžete:

  • Vytvořit novou akci - tlačítko vpravo nahoře
  • Upravit stávající akci - kliknutím na název úlohy v seznamu

Co jsou naplánované akce

Naplánované akce (Scheduled Jobs) fungují podobně jako cron joby na Linuxových serverech. Jde o automatické úlohy, které se spouštějí v pravidelných intervalech bez nutnosti manuálního zásahu.

Jak fungují

  1. Serverový cron spouští AutoCRM cron.php každou minutu
  2. AutoCRM zkontroluje, které joby mají běžet
  3. Spustí joby podle nastaveného plánu
  4. Zaznamená výsledek do logu

Proč jsou důležité

  • Automatizace: Eliminují manuální opakující se úkoly
  • Konzistence: Zajišťují pravidelné provádění důležitých operací
  • Spolehlivost: Běží i když nikdo není přihlášený
  • Výkon: Těžké operace běží na pozadí

Typy naplánovaných akcí

Základní systémové úlohy

1. Kontrola nových emailů (Check for New Emails)

Účel: Stahování nových emailů z osobních IMAP účtů uživatelů

Frekvence: Každých 1-5 minut (doporučeno: */2 * * * *)

Kdy je kritická:

  • Pro příjem emailů do systému
  • Pro automatické vytváření případů z emailů
  • Pro sledování korespondence

Co se stane když neběží: Uživatelé neuvidí nové emaily v systému


2. Kontrola skupinových emailových účtů (Check Group Email Accounts)

Účel: Stahování emailů ze sdílených/skupinových účtů

Frekvence: Každých 1-5 minut (doporučeno: */3 * * * *)

Kdy je kritická:

  • Pro podporu týmových schránek (např. support@firma.cz)
  • Pro automatické vytváření případů
  • Pro distribuci emailů v týmu

3. Zpracování hromadných emailů (Process Mass Emails)

Účel: Zpracování a odesílání hromadných emailových kampaní

Frekvence: Každých 15-60 minut (doporučeno: */15 * * * *)

Kdy je kritická:

  • Při běhu marketingových kampaní
  • Pro rozesílku newsletterů
  • Pro hromadnou komunikaci

Nastavení: Počet emailů odeslaných za běh lze nastavit v Administrace → Odchozí emaily


4. Odesílání emailových připomenutí (Send Email Reminders)

Účel: Odesílání připomenutí pro schůzky, hovory a úkoly

Frekvence: Každou minutu (* * * * *)

Kdy je kritická:

  • Pro notifikace před schůzkami
  • Pro připomenutí úkolů

5. Odesílání emailových oznámení (Send Email Notifications)

Účel: Odesílání systémových oznámení emailem

Frekvence: Každou minutu nebo každé 2 minuty

Kdy je kritická:

  • Pro oznámení o změnách v záznamech
  • Pro upozornění na nové přiřazení
  • Pro workflow oznámení

6. Úklid (Cleanup)

Účel: Čištění a údržba databáze

Co čistí:

  • Smazané záznamy starší než X dní
  • Staré oznámení
  • Dočasná data
  • Exportované soubory

Frekvence: Jednou denně (doporučeno: 0 1 * * * - v 1:00 ráno)

Nastavení: Perioda uchování dat v Administrace → Nastavení → Úklid


7. Kontrola autentizačních tokenů (Auth Token Control)

Účel: Mazání vypršelých autentizačních tokenů

Frekvence: Každou hodinu (0 * * * *)

Kdy je kritická:

  • Pro bezpečnost systému
  • Pro odstranění neplatných relací
  • Pro GDPR compliance

8. Kontrola statusu článků znalostní báze (Control Knowledge Base Article Status)

Účel: Automatická aktualizace statusu článků znalostní báze (publikace, expirace)

Frekvence: Každou hodinu nebo denně

Kdy je potřeba: Pokud používáte modul Znalostní báze


9. Zpracování fronty webhooků (Process Webhook Queue)

Účel: Zpracování fronty webhooků pro integraci s externími systémy

Frekvence: Každých 5-15 minut

Kdy je potřeba: Pokud používáte webhooky pro integraci


10. Zpracování čekajících procesních toků (Process Pending Process Flows)

Účel: Zpracování čekajících workflow procesů (BPM)

Frekvence: Každou minutu nebo každé 2 minuty

Kdy je kritická:

  • Pro běh obchodních procesních toků
  • Pro automatizaci workflow
  • Pro časové spouštěče procesů

Úlohy specifické pro moduly

Podle nainstalovaných rozšíření můžete mít další úlohy:

  • Workflow úlohy - pokud používáte Workflows
  • Naplánované reporty - pro automatické generování reportů
  • Úlohy zálohování - pokud máte rozšíření pro zálohování
  • Synchronizace dat - pro synchronizaci s externími systémy

Nastavení naplánované akce

Při úpravě nebo vytváření naplánované akce nastavujete:

Formulář vytvoření/úpravy úlohy

1. Činnost (Job)

Výběr ze seznamu dostupných typů úloh v systému.

Dostupné typy úloh:

Technický názevČeské označení
AuthTokenControlKontrola autentizačních tokenů
CNBSyncSynchronizace měnových kurzů s CNB
CheckEmailAccountsZkontrolovat emaily
CheckInboundEmailsZkontrolovat příchozí emaily
ControlKnowledgeBaseArticleStatusKontrola statusu článku znalostní báze
ProcessMassEmailPosílání hromadných emailů
ProcessWebhookQueueZpracování fronty webhooků
RecordCurrencyRatesZaznamenání měnových kurzů
SaveWarehouseValueUkládání hodnoty skladu
SendEmailNotificationsOdesílání emailových oznámení
SendEmailRemindersPřipomenutí emailů k poslání
SendScheduledEmailsPosílání naplánovaných emailů
SynchronizeEventsWithGoogleCalendarSynchronizace Google kalendáře
Poznámka

Seznam dostupných typů úloh se může lišit podle nainstalovaných rozšíření a modulů ve vašem AutoCRM.

2. Jméno (Name)

Název úlohy - automaticky se doplňuje podle typu úlohy, ale lze jej změnit na vlastní popisný název.

Příklad: Pokud vyberete činnost "CheckEmailAccounts", automaticky se doplní název "Check Email Accounts", který můžete změnit například na "Kontrola emailů každé 2 minuty".

3. Plánování (Scheduling)

Určuje jak často se úloha bude provádět pomocí cron syntaxe.

  • Každý typ činnosti má výchozí nastavení (např. kontrola emailů každé 2 minuty: */2 * * * *)
  • Toto nastavení lze změnit podle vlastních potřeb
  • Podrobné vysvětlení cron syntaxe viz sekce níže
Další možnosti

Stav (Status): Každou úlohu můžete také nastavit jako:

  • Aktivní (Active) - Úloha běží podle plánu
  • Neaktivní (Inactive) - Úloha je pozastavena

Poslední běh (Last Run): Zobrazuje kdy úloha naposledy běžela (pouze pro čtení)

Další běh (Next Run): Zobrazuje kdy úloha poběží příště podle cron plánu (pouze pro čtení)

Cron syntax - formát plánování

Cron syntax v AutoCRM používá 5 polí oddělených mezerami:

* * * * *
│ │ │ │ │
│ │ │ │ └─── Den v týdnu (0-7, 0 nebo 7 = neděle)
│ │ │ └───── Měsíc (1-12)
│ │ └─────── Den v měsíci (1-31)
│ └───────── Hodina (0-23)
└─────────── Minuta (0-59)

Speciální znaky

  • * - Každá hodnota (např. každou minutu, každý den)
  • , - Seznam hodnot (např. 1,15,30 = v minutě 1, 15 a 30)
  • - - Rozsah hodnot (např. 1-5 = pondělí až pátek)
  • / - Krok (např. */5 = každých 5 jednotek)

Praktické příklady

Cron syntaxPopisKdy použít
* * * * *Každou minutuSend Notifications, Reminders
*/2 * * * *Každé 2 minutyCheck Emails, Process Flows
*/5 * * * *Každých 5 minutGroup Email Accounts
*/15 * * * *Každých 15 minutMass Emails, Webhooks
*/30 * * * *Každých 30 minutReport generation
0 * * * *Každou hodinu (na začátku)Auth Token Control
0 2 * * *Každý den ve 2:00 ránoCleanup, Backup
0 0 * * 0Každou neděli o půlnociTýdenní údržba
0 0 1 * *První den v měsíci o půlnociMěsíční reporty
0 9 * * 1-5Každý pracovní den v 9:00Ranní reporty
30 8,12,17 * * *Denně v 8:30, 12:30, 17:30Pravidelné kontroly

Vytvoření vlastní naplánované akce

Pro administrátory - použití existujících úloh

  1. V seznamu Naplánovaných akcí klikněte na Vytvořit naplánovanou akci (Create Scheduled Job)
  2. Vyplňte Název (Name) - popisný název (např. "Denní backup reportů")
  3. Nastavte Stav (Status) na Aktivní (Active)
  4. V poli Úloha (Job) vyberte typ úlohy ze seznamu
  5. Nastavte Plánování (Scheduling) pomocí cron syntaxe
  6. Klikněte Uložit (Save)

Úprava existující naplánované akce

Pro úpravu již vytvořené naplánované akce:

  1. V seznamu Naplánovaných akcí klikněte na název úlohy, kterou chcete upravit
  2. Otevře se editační formulář s aktuálním nastavením

Úprava existující naplánované akce

  1. Upravte požadované pole (Název, Stav, Plánování, atd.)
  2. Klikněte Uložit (Save) pro uložení změn

Pro vývojáře - vytvoření vlastní job třídy

Pokud potřebujete zcela vlastní funkcionalitu, můžete vytvořit vlastní Job třídu:

Krok 1: Vytvořte soubor třídy

Umístění: custom/Espo/Custom/Jobs/MujVlastniJob.php

<?php
namespace Espo\Custom\Jobs;

use Espo\Core\Job\JobDataLess;

class MujVlastniJob implements JobDataLess
{
public function __construct(
private EntityManager $entityManager
) {}

public function run(): void
{
// Zde implementujte logiku vašeho jobu

// Příklad: Najít všechny aktivní účty
$accounts = $this->entityManager
->getRDBRepository('Account')
->where(['isActive' => true])
->find();

foreach ($accounts as $account) {
// Zpracování...
}
}
}

Krok 2: Vyčistěte cache

Po vytvoření souboru spusťte: Administrace → Vyčistit cache (Clear Cache)

Krok 3: Vytvořte naplánovanou akci

V Administrace → Naplánované akce vytvořte novou úlohu a vyberte vaši třídu ze seznamu.

Monitorování a ladění

Kontrola logů

Kde najít logy:

  1. Administrace → Naplánované akce (Scheduled Jobs)
  2. V pravém horním rohu klikněte na ikonu se třemi tečkami (⋮)
  3. Vyberte Úlohy (Jobs)

Přístup k logu úloh

  1. Zobrazí se seznam běžících, dokončených a naplánovaných úloh

Seznam úloh a jejich logů

Zde najdete:

  • Běžící (Running) - Aktuálně běžící úlohy
  • Úspěšné (Success) - Úspěšně dokončené úlohy
  • Neúspěšné (Failed) - Neúspěšné úlohy s chybami
  • Čekající (Pending) - Naplánované úlohy čekající na spuštění

Alternativně - serverové logy:

  • Logy jsou v data/logs/ složce na serveru
  • Hledejte soubor aktuálního data (např. 2025-10-06.log)

Informace v detailu úlohy

  • Poslední běh (Last Run) - Kdy úloha naposledy běžela
  • Stav (Status) - Zdali je aktivní
  • Další běh (Next Run) - Kdy poběží příště

Co dělat když úloha selhává

  1. Zkontrolujte log

    • Hledejte chybové zprávy (error messages)
    • Identifikujte příčinu (např. chybějící data, timeout)
  2. Zkontrolujte serverový cron

    • Běží cron.php každou minutu?
    • Má webserver práva na spuštění?
  3. Timeout problémy

    • Zvyšte PHP max_execution_time
    • Rozdělte job na menší části
    • Zpracovávejte data v dávkách
  4. Memory problémy

    • Zvyšte PHP memory_limit
    • Optimalizujte dotazy
    • Použijte batch processing

Nejčastější problémy

Úloha neběží vůbec

Příčiny:

  • Serverový cron není nastaven
  • Úloha je neaktivní (Inactive)
  • Chybná cron syntax

Řešení:

  1. Zkontrolujte že na serveru běží: * * * * * cd /path/to/autocrm && php cron.php > /dev/null 2>&1
  2. Nastavte úlohu na aktivní (Active)
  3. Ověřte cron syntax pomocí online nástrojů (crontab.guru)

Úloha běží příliš často

Příčiny:

  • Chybná cron syntax
  • Více instancí cronu běží současně

Řešení:

  1. Zkontrolujte cron syntax
  2. Ujistěte se, že cron.php neběží duplicitně
  3. Použijte zamykací mechanismus (locking)

Úloha běží příliš pomalu/timeout

Příčiny:

  • Velké množství dat
  • Pomalé databázové dotazy
  • Nedostatečný server resources

Řešení:

  1. Optimalizujte databázové dotazy
  2. Zpracovávejte data po dávkách (batch processing)
  3. Zvyšte PHP limits (memory_limit, max_execution_time)
  4. Použijte indexy v databázi

Emailové úlohy nestahují emaily

Příčiny:

  • Chybné IMAP nastavení
  • Vypršelá hesla/tokeny
  • Firewall blokuje připojení

Řešení:

  1. Zkontrolujte IMAP nastavení v Osobních emailových účtech (Personal Email Accounts)
  2. Otestujte připojení ručně
  3. Zkontrolujte logy pro konkrétní chybovou zprávu
  4. Ověřte firewall pravidla

Důležité úlohy pro provoz

Kritické úlohy - MUSÍ běžet

Tyto úlohy jsou nezbytné pro základní fungování AutoCRM:

ÚlohaProč je kritickáDoporučená frekvence
Check for New EmailsPříjem emailů do systému*/2 * * * *
Send Email NotificationsNotifikace uživatelů* * * * *
Send Email RemindersPřipomenutí schůzek/úkolů* * * * *
Process Pending Process FlowsWorkflow automatizace* * * * *
CleanupÚdržba databáze0 1 * * *
Auth Token ControlBezpečnost0 * * * *

Důležité úlohy - měly by běžet

ÚlohaÚčelDoporučená frekvence
Check Group Email AccountsTýmové schránky*/3 * * * *
Process Mass EmailsMarketing kampaně*/15 * * * *
Process Webhook QueueIntegrace*/5 * * * *

Volitelné úlohy

  • Generování reportů (Report generation) - podle potřeby
  • Zálohy (Backup jobs) - pokud máte backup rozšíření
  • Vlastní úlohy (Custom jobs) - podle vaší implementace

Doporučené nastavení pro produkci

Check for New Emails:           */2 * * * *
Check Group Email Accounts: */3 * * * *
Send Email Reminders: * * * * *
Send Email Notifications: * * * * *
Process Mass Emails: */15 * * * *
Process Pending Process Flows: * * * * *
Cleanup: 0 1 * * *
Auth Token Control: 0 * * * *
Process Webhook Queue: */5 * * * *

Optimalizace výkonu

Rozložení zátěže

Nestavte všechny úlohy na stejný čas. Například místo:

Úloha A: 0 * * * *
Úloha B: 0 * * * *
Úloha C: 0 * * * *

Použijte:

Úloha A: 0 * * * *
Úloha B: 15 * * * *
Úloha C: 30 * * * *

Monitorování

Sledujte:

  • Dobu běhu jednotlivých úloh
  • Využití CPU a paměti během běhu
  • Frekvenci selhání

Doporučené postupy

  1. Testujte úlohy nejdřív na testovacím prostředí
  2. Logujte všechny důležité operace
  3. Použijte ošetření chyb (error handling, try-catch bloky)
  4. Zpracovávejte data po dávkách (např. 100 záznamů najednou)
  5. Nastavte timeouty rozumně podle objemu dat
Důležité

Některé úlohy jsou kritické pro správné fungování AutoCRM. Pokud je deaktivujete nebo nastavíte špatně, může to ovlivnit:

  • Příjem a odesílání emailů
  • Notifikace uživatelů
  • Workflow automatizaci
  • Výkon systému
Pro administrátory

Pokud máte problémy s úlohami, nejdřív zkontrolujte:

  1. Je nastavený cron na serveru? - crontab -l nebo kontaktujte hosting
  2. Běží cron každou minutu? - Měli byste vidět: * * * * * cd /path/to/autocrm && php cron.php
  3. Má webserver práva na spouštění? - Zkontrolujte oprávnění (permissions) na cron.php
  4. Jsou úlohy aktivní? - Stav (Status) = Aktivní (Active) v nastavení úlohy
Užitečný tip

Pro ladění můžete spustit jednotlivou úlohu ručně z příkazové řádky:

php command.php run-job JobName

Například:

php command.php run-job Cleanup