Crony v5.19
Crony jsou naplánované úlohy, které v TAS zajišťují běh workflow v čase (spouštění naplánovaných procesů, aktivace časovaných úkolů), rozesílku notifikací, údržbu dat a integrace s okolními systémy. Tento článek popisuje, jak crony ve verzi TAS 5.19 fungují, kde se spravují a jak se konfigurují, a obsahuje kompletní přehled všech 28 platformních cronů včetně doporučení, které z nich mít na instanci aktivní.
PLUGIN místo PLATFORM), ale žádný z dodávaných pluginů v 5.19 svůj cron neregistruje. Seznam Administrace → Crony proto obsahuje výhradně těchto 28 platformních cronů.Související článek: Stav systému – Monitor cronů
1. Jak crony v TAS fungují
1.1 Kde je v administraci najdete
Obrazovka |
Cesta |
K čemu slouží |
Crony |
|
Seznam nakonfigurovaných cronů, zakládání, editace, mazání, ruční spuštění, tovární nastavení. |
Monitor cronů |
|
Živý přehled naplánovaných úloh, jejich posledních běhů a stavu. |
Stav systému → Přehled |
|
Souhrnný stav naplánovaných úloh jako jedna z komponent celkového zdraví instance. |
1.2 Architektura
- Crony neběží ve web-backendu, ale v samostatném procesu cron worker. Cron workerů může běžet víc současně – ve Stavu systému je poznáte podle typu backendu Cron.
- Každý cron je třída se čtyřmi povinnými poli:
schedule– výchozí cron výraz,alias– výchozí zobrazovaný název,description– výchozí popis,defaultStatus–A/N(viz 1.4),- volitelně
parametersSchema– JSON schéma, ze kterého administrace generuje formulář parametrů.
- Registr platformních cronů obsahuje ve verzi 5.19 přesně 28 položek. Plugin crony by se do stejného registru přimíchaly z nainstalovaných pluginů.
- Historie běhů se ukládá do Elasticsearch (index z
TAS_ELASTIC_CRON_RUN_INDEX_NAME, ve výchozím stavu hlavní index s příponou-cron-runs). Zápis historie je jen observabilita, ne funkční stav – výpadek Elasticsearch nezastaví vykonávání cronů, jen se neuloží záznam o běhu. Autoritativní záznam o posledním běhu je krátký otisk v Redisu. - Heartbeat monitor detekuje zaseknutý nebo spadlý běh: worker pravidelně hlásí, že cron žije, a po vypršení timeoutu se běh označí jako Zabitý (
Process crashed (stale heartbeat).). Časování se řídí env proměnnými v kapitole 1.7. - Souběh na víc workerech hlídá distribuovaný zámek v Redisu.
- Ke každému běhu se zaznamenává stav (
Rběžící,Fdokončený,Echyba,Kzabitý) a spouštěč (SCHEDULED/MANUAL).
CRON_RUNS od verze 5.19 neexistuje – migrace „cron overhaul“ ji zahodila spolu s runtime sloupci v tabulce CRONS. Stav běhu je nyní v Redisu, historie v Elasticsearch.Index historie zakládá až migrace Elasticsearch (
npm run migrate elastic / migrate init), a jen je-li nastaveno integrations.elastic.index. Bez ní crony běží normálně, ale Monitor nemá z čeho počítat historii.cache.mode = "redis" je zámek jen atrapa a každá cache je lokální pro proces – dva workery pak mohou spustit tentýž cron současně.1.3 Vytvoření záznamu ≠ instalace kódu
Toto je nejčastější zdroj nedorozumění:
- Třída cronu existuje v kódu vždy. Nedá se „doinstalovat“ ani „odinstalovat“.
- Admin z třídy v UI vytvoří pojmenovaný záznam v tabulce
CRONS– teprve ten má vlastní rozvrh, parametry a příznak aktivní/neaktivní. - Dokud pro cron neexistuje aktivní záznam, úloha se nikdy nespustí.
- U některých cronů dává smysl vytvořit víc záznamů (jeden na každou schránku, import, účet) – viz 2.7.
- Název záznamu (
DISPLAY_NAME) musí být v rámci instance unikátní.
1.4 Výchozí stav a předpřipravené crony
Pole defaultStatus v kódu neznamená, že cron po instalaci běží. Znamená jen, že dialog „Přidat cron“ předvyplní přepínač aktivní.
Na čerstvé instalaci navíc seed migrace založí 9 záznamů – a to všechny neaktivní (IS_ACTIVE = false). Migrace vkládá data pouze tehdy, je-li tabulka CRONS prázdná, takže existující instance se upgradem nezmění.
Předseedovaná devítka je shodná s devíti crony, které mají defaultStatus = A:
AdSyncCronCompetenceGeneratorCroniDokladSynchronizationCronMsGraphCreateProcessesFromMailCronMsGraphCheckUnprocessedMailsCronPhotosCleanupCronRunProcessTemplateProcessShreddingXMLProcessImportCron
1.5 Formát rozvrhu
Cron výraz má v TAS 6 polí – oproti běžnému unixovému cronu je navíc pole sekund:
sekunda minuta hodina den-v-měsíci měsíc den-v-týdnu
0-59 0-59 0-23 1-31 1-12 0-6 (0 = neděle)
Výraz |
Význam |
|
každý den v 01:30 |
|
každých 5 minut |
|
každou sobotu ve 2:00 |
|
každých 5 minut mezi 3:00 a 19:59, v 50. sekundě |
|
každou sekundu – téměř nikdy to není záměr |
Formulář v administraci výraz kontroluje a neplatný odmítne hláškou Neplatná syntaxe cronu; zároveň pod polem ukazuje čitelný popis rozvrhu – ten si vždy přečtěte, je to nejrychlejší kontrola překlepu.
1.6 Co umí obrazovka Crony (5.19)
Verze 5.19 přinesla proti starším verzím několik novinek, které stojí za to znát:
- Technický název je sloupec v přehledu a dá se podle něj filtrovat (technický název = třída, kterou plánovač skutečně spouští).
- Aktivovat / Deaktivovat přímo z tříteckového menu řádku, bez otevírání detailu.
- Import / Export definice cronu jako JSON (tlačítko v detailu). Slouží k přenosu konfigurace mezi prostředími. Import cizího technického názvu je odmítnut.
- Logy – tlačítko v hlavičce detailu otevře prohlížeč logů omezený na daný cron.
- Tovární nastavení – obnoví rozvrh, popis, parametry i příznak aktivity z výchozích hodnot třídy. Uživatelsky zadaný název zůstane zachován. (Ve starších verzích reset u již nakonfigurovaného cronu nedělal nic.)
- Terminovat crony – pošle všem cron workerům pokyn ke korektnímu ukončení. Běžící úlohy se nechají dokončit, takže v pracovní době může operace zpracování zdržet.
- U MS Graph cronů: Discover folders (živé procházení stromu složek schránky přes Microsoft Graph, včetně převzetí ID složky do konfigurace) a možnost uložit
clientSecretjako odkaz do trezoru ve tvaru{{vault:název}}místo otevřeného textu.
1.7 Globální konfigurace cronů
Nastavuje se přes env proměnné (statická konfigurace), případně přes dynamickou konfiguraci v application.crons.
Proměnná |
Výchozí |
Význam |
|
|
Hlavní vypínač plánovače. Při |
|
|
Jak často worker hlásí, že běh žije. |
|
|
Po jaké době bez signálu je běh považován za mrtvý. |
|
|
Jak často monitor kontroluje zastaralé signály. |
|
5 |
Počet selhání v řadě, než se odešle upozorňovací e-mail. |
|
hlavní index + |
Elasticsearch index pro historii běhů. |
Dále v dynamické konfiguraci application.crons:
Klíč |
Výchozí |
Význam |
|
|
Adresy pro notifikaci o selhání cronu. |
|
|
Adresy pro notifikaci o selhání MS Graph cronů. |
|
|
Práh selhání v řadě (přebíjí env). |
error@teamassistant.cz jsou interní adresy dodavatele. Na produkci je nahraďte vlastními, jinak upozornění o selhání cronů nikdo z vaší strany nedostane.3, ale efektivní hodnota použitá aplikací je 5. Pokud na hodnotě záleží, nastavte ji explicitně.Na tyto adresy chodí dva druhy upozornění:
Předmět |
Kdy |
|
Cron selhal tolikrát v řadě, kolik je práh. Znovu se odešle až po dalším úspěšném běhu a novém překročení prahu. |
|
Monitor průběžně zjistil, že cron je zpožděný (overdue) nebo běží déle, než je obvyklé. Opakování je omezeno (nejméně 1 hodina). |
1.8 Indikátory v Monitoru cronů
Monitor ve výchozím stavu zobrazuje jen aktivní crony; neaktivní se přidají přepínačem Zobrazit neaktivní. Crony si lze označit hvězdičkou jako oblíbené (ukládá se per uživatel) a připnout je tak na začátek seznamu. Statistiky (úspěšnost, průměrné trvání) se počítají za zvolené období: 1 h, 8 h, 1 den (výchozí), 3 dny, 1 týden, vše. Tlačítko „i“ otevře nápovědu k indikátorům.
Indikátor |
Význam |
Stav |
Semafor: zelená = v pořádku, žlutá = vyžaduje pozornost, červená = selhává. Vychází z posledních běhů, počtu selhání v řadě a z toho, zda naplánované běhy startují včas. |
Typ cronu |
|
Časování cronu |
Cron výraz určující spouštění; počítá se z něj „Následující spuštění“. |
Následující / Poslední spuštění |
Čas dalšího plánovaného startu a začátek posledního běhu. |
Dokončeno / Trvání |
Kdy poslední běh skončil a jak dlouho trval (v sekundách). |
Výsledek posledního běhu |
Dokončený, Chyba, Běžící nebo Zabitý. |
Poslední úspěch |
Kdy cron naposledy doběhl úspěšně. |
Prezenční signál |
Kdy worker naposledy nahlásil cron jako živý. Zastaralý signál během běhu značí zaseknuté spuštění. |
Úspěšnost |
Podíl úspěšných běhů ve zvoleném období (v závorce celkový počet běhů). |
Průměrné trvání |
Průměrná délka běhu ve zvoleném období. |
Selhání v řadě |
Po dosažení prahu se odešle e-mail; počítadlo se nuluje prvním úspěšným během. |
Instance |
Který worker (a PID) právě běh provádí. |
Varování |
Krátký důvod, proč je cron žlutý/červený – např. selhání posledního běhu nebo zpožděný naplánovaný běh (overdue). |
2. Kompletní přehled cronů (TAS 5.19)
Sloupec Stav: A = dialog „Přidat cron“ předvyplní aktivní, N = předvyplní neaktivní. Ani jedno neznamená, že cron po instalaci běží (viz 1.4). Rozvrh i stav lze při zakládání libovolně přepsat.
2.1 Jádro plánování a workflow
Název (technický název) |
Výchozí rozvrh |
Stav |
Co dělá |
Run planned processes ( |
|
N |
Spouští procesy naplánované na konkrétní datum a čas a dokončuje uzavřené plány. Bez parametrů. |
Run scheduled tasks and events (PARALLEL) ( |
|
N |
Aktivuje čekající naplánované úkoly a události (timer/deadline uzly ve workflow). Používá distribuovaný zámek, takže smí běžet na víc workerech bez duplicit. |
Parametry PostponedTaskCron:
Parametr |
Výchozí |
Význam |
|
|
Spodní časová hranice (ISO řetězec nebo timestamp v ms). |
|
|
Doba platnosti zámku proti paralelní aktivaci. |
|
|
Max. položek na běh (zvlášť pro události a úkoly). |
|
|
|
2.2 Pošta a notifikace
Název (technický název) |
Výchozí rozvrh |
Stav |
Co dělá |
Send task notifications emails ( |
|
N |
Odesílá splatné e-mailové notifikace o úkolech z fronty |
Send task reports and deadlines. ( |
|
N |
Rozesílá denní reporty úkolů a eskalace blížících se a prošlých termínů manažerům a nadřízeným. Bez parametrů. |
Send Custom Views to subscribers ( |
|
N |
Rozesílá přehledy (Custom Views) odběratelům, kteří k nim mají práva. Parametr |
Send mail with usage statistics ( |
|
N |
Odešle e-mailem statistiky využití za minulý měsíc. |
Password Expiration Notification Mails ( |
|
N |
E-maily uživatelům, kterým se blíží expirace hesla. Bez parametrů. |
Secret store & API token validation ( |
|
N |
Hlídá expirující a expirované záznamy v trezoru (secret store) a API tokeny, volitelně pošle e-mail. |
Parametry MailUsageStatisticsCron:
Parametr |
Výchozí |
Význam |
|
|
Příjemci měsíčního reportu. |
|
|
Přiložit soubor se statistikou dokončených úkolů. |
Parametry B2bAndSecretStoreValidationCron:
Parametr |
Výchozí |
Význam |
|
|
Kolik dní dopředu hlídat expiraci. |
|
|
Poslat e-mail při nálezu. |
|
|
Příjemci upozornění. |
PasswordExpirationNotificationCron reálně nic neodešle, dokud není v Administrace → Zabezpečení zapnuté expirationEmailEnabled a nastavená doba expirace hesla.2.3 Údržba dat a úložiště
Název (technický název) |
Výchozí rozvrh |
Stav |
Co dělá |
Remove old logs. ( |
|
N |
Maže staré aplikační a kalkulační logy podle retence v parametrech. |
Cleanup old data from Database and from other parts of app. ( |
|
N |
Maže staré řádky z vybraných tabulek a čistí dočasné adresáře. |
Archivation of Processes ( |
|
N |
Přesouvá do archivu instance procesů, jejichž šablona má nastavenou archivaci. Parametr |
Template process shredding ( |
|
A |
Trvale skartuje instance procesů po uplynutí odkladu skartace nastaveného na šabloně. Parametr |
Profile photos cleanup ( |
|
A |
Maže profilové fotky, které jsou na disku, ale už nejsou v databázi. Bez parametrů. |
Generate Thumbnails ( |
|
N |
Dogeneruje náhledy obrázkových souborů v DMS, které je ještě nemají. Parametry |
Index DMS files. ( |
|
N |
Fulltextově indexuje soubory DMS na pozadí (Tika + Elasticsearch). |
Parametry DeleteLogs (dny retence):
Parametr |
Výchozí |
Význam |
|
|
Logy úrovně error a warn starší než X dní. |
|
|
Logy úrovně info a nižší. |
|
|
Kalkulační logy. |
|
|
Metadata logů. |
Cron si chybějící hodnoty doplní z výchozích, takže funguje i s prázdnými parametry.
Parametry CleanupCron:
cleanupTmp(výchozítrue) – smaže a znovu vytvoří dočasné podadresáře. Doporučeno ponechat zapnuté.tables– pole položek{ name, keepDays, limit, processStatuses? }.
Výchozí sada tabulek:
Tabulka |
keepDays |
limit |
| 730 | 1000 |
| 730 | 1000 |
| 730 | 1000 |
| 730 | 1000 |
| 730 | 1000 |
| 180 | 5000 |
| 180 | 5000 |
| 180 | 5000 |
| 360 | 5000 |
| 360 | 5000 |
| 360 | 1000 |
| 360 | 1000 |
CRON_RUNS není databázová tabulka (ta byla v 5.19 zrušena) – je to zástupný název, pod kterým se maže historie běhů cronů v Elasticsearch (delete-by-query podle data dokončení). Hodnota limit se u této položky ignoruje, uplatní se jen keepDays.tables neobsahují (např. při založení cronu přes API bez parametrů), cron jen zaloguje informaci a nic neuklidí. Výchozí sada se předvyplní jen při zakládání přes formulář v UI.limit je počet řádků na jeden běh. Výchozí 1000 řádků jednou měsíčně na velké instanci nemusí stačit – sledujte, zda tabulky skutečně klesají, a případně limit zvyšte nebo cron spouštějte častěji.Parametry DmsFileIndexingCron: errored (false), current (true), reindexAll (nenastaveno), maxIndexedFiles (nenastaveno = neomezeně), blockedRuntimeHours ([] – hodiny, ve kterých se běh ukončí chybou, aby indexace nezasahovala do provozu), indexingConcurrency (1).
integrations.tika.url (chyba tikaUrl not set!) nebo integrations.elastic.index (Fulltext is not set!).Profile photos cleanup je * * 23 * * 1. V poli sekund i minut je hvězdička, takže výraz znamená každou sekundu po celou hodinu 23:00 každé pondělí, ne jednou týdně, jak název napovídá. Při zakládání záznamu nastavte vlastní rozvrh, např. 00 00 23 * * 1.2.4 Databáze a infrastruktura
Název (technický název) |
Výchozí rozvrh |
Stav |
Co dělá |
Elastic indices cleanup ( |
|
N |
Přesáhne-li logovací index v Elasticsearch |
Run database health report ( |
|
N |
Vygeneruje report o zdraví databáze (fragmentace indexů, náročné dotazy, metriky cache). Do dat nezasahuje. |
Run database index rebuild ( |
|
N |
Aktivně přestavuje fragmentované indexy nad zadanými prahy. |
- Parametry
ElasticsearchIndicesCleanupCron:maxIndexSize("15gb"),targetSize("12gb"). Relevantní jen přilogging.loggerType = "elastic". - Parametry
DatabaseHealthReportCron(všechny povinné):pageCountThreshold(1000),fragmentationThreshold(30%),heavyQueryLimit(50). - Parametry
DatabaseIndexRebuildCron(všechny povinné):pageCountThreshold(1000),fragmentationThreshold(30%),indexRebuildTimeoutInSeconds(120, jen PostgreSQL).
2.5 Bezpečnost, role a práva
Název (technický název) |
Výchozí rozvrh |
Stav |
Co dělá |
AD sync ( |
|
A |
Synchronizuje uživatele a skupiny z Active Directory / LDAP. |
Competence generator ( |
|
A |
Generuje a maže role přiřazené přes kompetence, volitelně přestaví jejich indexy. |
Sync process rights. ( |
|
N |
Přepočítá a synchronizuje externí přístupová práva k procesům. Bez parametrů. |
AdSyncCronzpracovává pouze autority sAUTH_MODULE = 'ldap'aAUTH_SYNC_ENABLED = 'Y'. Bez nakonfigurované LDAP autority se synchronizací tedy neudělá nic – je bezpečný i na instanci bez AD.- Parametry
CompetenceGeneratorCron:rebuildIndexesAfterGenerating(true),forceRebuildForAllCompetences(false).
2.6 Statistiky a intranet
Název (technický název) |
Výchozí rozvrh |
Stav |
Co dělá |
Gather usage statistics ( |
|
N |
Sbírá interní statistiky používání TAS. Podklad pro měsíční report i pro licenční účely. Bez parametrů. |
Publish posts ( |
|
N |
Publikuje naplánované příspěvky na nástěnce s datem publikace v minulosti a skrývá ty, kterým vypršelo zobrazení. Parametr |
MailUsageStatisticsCron rozesílá to, co nasbírá UsageStatisticsCron. Zapínat měsíční rozesílku bez denního sběru nemá smysl.2.7 Integrace – konfigurovatelné šablony
Tyto crony se nezapínají globálně. Admin z nich typicky vytvoří jeden pojmenovaný záznam pro každý konkrétní případ použití (jiná schránka, jiný zdroj XML, jiný účet), s vlastním rozvrhem a parametry.
Název (technický název) |
Výchozí rozvrh |
Stav |
Co dělá |
Instantiate process ( |
|
A |
Zakládá instance zadaných šablon procesů podle rozvrhu. |
Create Processes from XML files. ( |
|
A |
Importuje XML soubory z adresáře, z každého vytvoří instanci procesu a naplní proměnné z atributů XML. Umí připojit soubor do DMS a poslat souhrnný e-mail. |
Synchronize iDoklad with a dynamic table. ( |
|
A |
Synchronizuje vystavené doklady z účtu iDoklad do dynamické tabulky podle namapovaných sloupců. |
Create Processes from MS Graph mails ( |
|
A |
Stahuje e-maily z nakonfigurovaných schránek přes MS Graph a z každého vytvoří případ (mapování polí, přílohy do DMS). |
Check unprocessed MS Graph mails ( |
|
A |
Kontroluje, zda ve složce „zpracováno“ nezůstaly e-maily bez odpovídajícího případu, a pošle report. |
RunProcess – parametr items[]: header_id (ID šablony), iproc_name (název případu), user_id (zakladatel, Admin = 1), orgstr_id (organizační jednotka, Root = 1).
* * * * * * znamená doslova každou sekundu a výchozí položka má header_id: null, takže se přeskočí a jen zaloguje varování. Při zakládání záznamu vždy nastavte reálný rozvrh a vyplňte platné header_id, jinak cron zbytečně vytěžuje worker a zaplavuje log.iDokladSynchronizationCron – parametrem je pole konfigurací (clientId, clientSecret, dynamicTableIdentificator, mapping, pairBy – výchozí documentNumber, includeCreditNotes, includeProformaInvoices). Předseedovaná konfigurace má prázdné přihlašovací údaje, takže cron bez doplnění nic neudělá.
XMLProcessImportCron – parametr items[] s cestou k XML, mapováním na šablonu a proměnné, chováním ke zdrojovým souborům a limity. Jeden záznam zvládne víc konfigurací v poli items.
MS Graph crony – konfigurace je per schránka (autentizace, vstupní a výstupní složka, mapování polí e-mailu na proměnné, práce s přílohami, souhrnné a chybové e-maily). V 5.19 platí:
- Jedna rozbitá schránka nebo jeden rozbitý e-mail už neshodí celý běh – zpracovávají se izolovaně a běh pošle jeden souhrnný e-mail
[MS-GRAPH - FAILED]. - Zpracovávají se jen zprávy, jejichž MAPI třída odpovídá povolenému prefixu (výchozí
IPM.Note) – pozvánky, doručenky a odpovědi mimo kancelář se přesunou do výstupní složky bez založení případu. attachEmailAsPdf(výchozí vypnuto) připojí e-mail k případu jako PDF v jazyce aplikace.- U nově zakládaných cronů je
useEmailObjectInDataHoldernastaveno nafalse, aby se mapování polí skutečně projevilo. - Parametr
amountOfEmailByRun(předseedováno100) omezuje počet e-mailů na jeden běh. MsGraphCheckUnprocessedMailsCronpoužívá parametrnumberOfDays(předseedováno7) a měl by mít stejná pravidla schránek jako importní cron, jinak bude hlásit falešné nálezy.
3. Doporučení – které crony mít nainstalované
„Nainstalovaný“ cron = existující a aktivní záznam v Administrace → Crony. Připomínáme, že po čerstvé instalaci TAS 5.19 neběží žádný cron – devět jich má založený záznam, ale všechny neaktivní, zbylých devatenáct nemá ani záznam.
3.1 Nutné minimum – aktivujte prakticky vždy
Bez těchto přicházíte o základní funkčnost workflow enginu, nebo vám neomezeně roste úložiště. Ani jeden z nich přitom není po instalaci připraven.
Cron |
Proč |
Run planned processes ( |
Bez něj se nikdy nespustí nic naplánovaného na budoucí datum. |
Run scheduled tasks and events (PARALLEL) ( |
Bez něj se neaktivují časované a odložené kroky workflow (timer, deadline). |
Remove old logs. ( |
Jinak logy rostou neomezeně. Funguje i s výchozími parametry. |
Cleanup old data from Database… ( |
Jinak rostou |
Send task notifications emails ( |
Prakticky vždy – bez něj uživatelům nechodí notifikace o úkolech. Vynechte jen, pokud instance e-maily záměrně neposílá. |
3.2 Bezpečné nechat aktivní, i když je zatím nevyužíváte
Tyto crony jsou bez odpovídající konfigurace neškodné (nic nenajdou, nic neudělají), takže je můžete zapnout dopředu.
Cron |
Poznámka |
AD sync |
Bez LDAP autority se synchronizací nedělá nic. |
Competence generator |
Bez kompetencí nemá co generovat. |
Template process shredding |
Bez nastavené skartace na šabloně nic neskartuje. Jakmile ji nastavíte, cron ji vykoná. |
Profile photos cleanup |
Jen po opravě rozvrhu na |
Gather usage statistics |
Lehký, sbírá podklady pro licenční a měsíční reporty. Doporučeno mít zapnutý. |
3.3 Zapněte jen podle skutečně používaných funkcí
Cron |
Kdy má smysl |
Send task reports and deadlines. |
Chcete-li denní reporty a eskalace termínů manažerům a nadřízeným. |
Send Custom Views to subscribers |
Používáte-li odběry přehledů. |
Send mail with usage statistics |
Chcete-li měsíční report. Nejdřív nastavte vlastní příjemce místo |
Password Expiration Notification Mails |
Jen při zapnuté expiraci hesel v Zabezpečení. |
Secret store & API token validation |
Používáte-li trezor nebo API tokeny pro integrace. Nastavte vlastní |
Archivation of Processes |
Jen mají-li šablony nastavenou archivaci. |
Index DMS files. |
Jen je-li nakonfigurován Tika + Elasticsearch – jinak selže na každém běhu. |
Generate Thumbnails |
Chcete-li náhledy obrázků v DMS i pro soubory nahrané dříve. Jednorázově nebo dočasně; po dogenerování lze vypnout. |
Sync process rights. |
Jen tam, kde se využívají externí přístupová práva k procesům. |
Elastic indices cleanup |
Jen při logování do Elasticsearch ( |
Publish posts |
Jen používáte-li plánované příspěvky na nástěnce. |
3.4 Databázová údržba – opatrně
- Run database health report – doporučeno zapnout na produkci. Pouze čte, nic nemění, a dá vám podklad pro rozhodnutí.
- Run database index rebuild – nezapínejte naslepo. Aktivně přestavuje indexy a může výrazně zatížit databázový server.
3.5 Integrace – zakládejte cíleně, ne plošně
RunProcess, XMLProcessImportCron, iDokladSynchronizationCron a oba MS Graph crony se nezapínají jako celek. Založte pojmenovaný záznam přímo pro konkrétní integraci a nastavte mu vlastní rozvrh.
- Předseedované záznamy těchto cronů mají prázdnou nebo ukázkovou konfiguraci. Buď je doplňte, nebo je nechte neaktivní – aktivní záznam s neúplnou konfigurací sice nic nerozbije, ale zbytečně běží a plní log varováními.
- U
RunProcessvždy přepište rozvrh – výchozí* * * * * *je každou sekundu. - Oba MS Graph crony nastavte se shodnými pravidly schránek, jinak kontrolní cron hlásí falešné nálezy.
- Pro
clientSecretpoužijte odkaz do trezoru{{vault:název}}místo otevřeného textu – zejména proto, že export definice cronu obsahuje hesla v čitelné podobě.
3.6 Doporučená konfigurace prostředí
Nezávisle na jednotlivých cronech nastavte:
application.crons.sendErrorMailAddressesamsGraphErrorMailAddressesna vlastní adresy (výchozíerror@teamassistant.czje adresa dodavatele).TAS_CRONS_CONSECUTIVE_FAILURE_THRESHOLDexplicitně, pokud vám záleží na citlivosti upozornění (efektivní výchozí hodnota je 5).- Ověřte, že běží alespoň jeden cron worker – ve Stavu systému musí být vidět backend typu Cron – a že
TAS_CRONS_RUN_ON_STARTnenífalse. - Provozujete-li víc cron workerů, zajistěte Redis (
cache.mode = "redis"). Bez něj neplatí ochrana proti dvojímu spuštění téhož cronu. - Zajistěte, že cron workery mají automatický restart (restart policy). Aplikace je po ukončení sama nenastartuje.
- Spusťte migraci Elasticsearch, jinak nebude k dispozici historie běhů ani statistiky v Monitoru.
4. Kontrola po instalaci nebo upgradu
- Administrace → Crony – projděte seznam a ověřte, že crony z kapitoly 3.1 Nutné minimum mají založený a aktivní záznam. Po čerstvé instalaci je musíte založit nebo aktivovat ručně.
- Monitor cronů – přepněte na Zobrazit neaktivní, zkontrolujte, že žádný aktivní cron nemá červený stav, nízkou úspěšnost ani varování overdue.
- Parametry – u cronů s výchozími adresami dodavatele (
MailUsageStatisticsCron,B2bAndSecretStoreValidationCron) a u retenčních pravidel (DeleteLogs,CleanupCron) projděte hodnoty a upravte je podle reálných požadavků instance. - Rozvrhy – u
PhotosCleanupCronaRunProcessověřte, že rozvrh není ponechán na výchozí „každou sekundu“. - Po upgradu z verze starší než 5.19 – migrace normalizuje uložené parametry proti schématům cronů. Každý přepsaný záznam zapíše varování s původním a novým JSON.
5. Řešení potíží
Příznak |
Kde hledat |
Nespouští se vůbec nic |
Ověřte |
Cron se vůbec nespouští |
Existuje záznam a je aktivní? Je rozvrh platný (viz Následující spuštění v Monitoru)? |
Tentýž cron proběhl dvakrát |
Běží víc cron workerů bez Redisu – zámek proti souběhu vyžaduje |
Po „Terminovat crony“ se nic nespustilo |
Workery se korektně ukončily, ale nikdo je nerestartoval. Restart zajišťuje orchestrátor, ne aplikace. |
Cron je overdue |
Worker byl vypnutý nebo přetížený; zkontrolujte prezenční signál a instanci v Monitoru. |
Běh visí ve stavu Běžící |
Zastaralý prezenční signál = zaseknuté spuštění. Po timeoutu (výchozí 95 s) se běh vyhodnotí jako mrtvý; pomůže Terminovat crony. |
Cron opakovaně selhává |
Tlačítko Logy v detailu cronu otevře logy omezené na tento cron. Po dosažení prahu selhání v řadě přijde e-mail na |
Parametry nejdou uložit |
Chybová hláška pojmenuje konkrétní vadné nastavení. Přes API se nevalidní parametry odmítnou s |
Cron „nic nedělá“ bez chyby |
Většina cronů je bez odpovídající konfigurace no-op – viz poznámky u jednotlivých cronů v kapitole 2. |
Historie běhů chybí |
Historie je v Elasticsearch. Zkontrolujte, že proběhla migrace Elasticsearch a je nastaveno |
Updated
by Frantisek Brych