Jak se crony volají
Všechny cron úlohy jsou HTTP GET requesty na console presentery. Volají se přes
wget/curl z crontabu. Každý console endpoint je chráněný
parametrem ?hash=… (viz ConsoleBasePresenter::HASH_URL) —
bez správného hashe vrátí „Permission verify failed".
- Produkční host:
https://sovang.vapol.cz - Prefix:
/console/{presenter}/{action}?hash=… - Hash: nastaven v
ConsoleBasePresenter::HASH_URL(v tabulkách níže zkracován na?hash=…) - Logy: běhy se logují přes
logMsg()do Tracy (/log)
# příklad řádku v crontabu
*/15 * * * * curl -s "https://sovang.vapol.cz/console/console-nomen-images/sync-from-karat?hash=XXX&type=update" >/dev/null 2>&1
A. Obrázky nové v této branchi
Sync Karat BLOB → lokální cache + úklid orphanů. Viz docu Obrázky.
| Interval | Cron URL | Funkce |
|---|---|---|
*/15 * * * * |
console-nomen-images/sync-from-karat?hash=…&type=update |
Inkrementální sync obrázků změněných v Karatu za posledních 15 min |
0 3 * * 0 |
console-nomen-images/sync-from-karat?hash=…&type=full |
Plný sync všech obrázků (1× týdně, může trvat déle) |
0 4 * * 0 |
console-nomen-images/cleanup-orphans?hash=…&apply=1 |
Úklid orphanů — lokální soubory, jejichž id_file už v Karatu není |
Pozor u cleanup-orphans: je log-driven — maže jen podle
karat_image_sync_log. Efektivní je až když sync-from-karat log naplňuje;
dokud se obrázky tahají jen lazy (přes feed/picture endpoint), log zůstává prázdný a cleanup nic neuklidí.
Default je dry-run (apply=0) — před prvním ostrým během (apply=1) doporučeno spustit dry-run a zkontrolovat počty v logu.
B. Produktové feedy nové v této branchi
FTP push R5 feedů partnerům. Viz docu Feed.
| Interval | Cron URL | Funkce |
|---|---|---|
0 5 * * * |
console-feed/prepare-feeds?hash=… |
Vygeneruje feed pro každého aktivního partnera s vyplněným ftp_host a nahraje na jeho FTP |
C. Synchronizace produktů (dostupnost / ceny / nabídky)
Push skladové dostupnosti a nabídek na marketplace API.
| Interval | Cron URL | Funkce |
|---|---|---|
*/15 * * * * |
console-mall/api-update-availability?hash=…&type=update |
Mall — inkrementální dostupnost |
0 2 * * * |
console-mall/api-update-availability?hash=…&type=full |
Mall — plný produkt sync |
0 2 * * * |
console-mall/check-products-platnost?hash=…&dryRun=0 |
Mall — odstranění produktů, které už nejsou platné v Karatu |
*/15 * * * * (ověřit) |
alza-avail/avail?hash=…&partner=1017086&type=update |
Alza VAPOL — dostupnost (Karat source) |
*/15 * * * * (ověřit) |
alza-avail/avail?hash=…&partner=74&type=update |
Alza BIORUZE — dostupnost (L4U source) |
0 * * * * (ověřit) |
kaufland-products/update-inventory-hourly?hash=… |
Kaufland — hodinový update skladu |
0 1 * * * (ověřit) |
kaufland-products/update-inventory?hash=… |
Kaufland — plný denní update cen a skladu |
0 1 * * * (ověřit) |
kaufland-products/create-feed?hash=… |
Kaufland — produktový feed |
0 1 * * * (ověřit) |
allegro-sync-offers/sync-offers?hash=… |
Allegro — sync stavů nabídek (1× denně, tvoří relace offer↔nomen) |
0 1 * * * (ověřit) |
decathlon-sync-offers/sync-offers?hash=… |
Decathlon — sync nabídek |
0 1 * * * (ověřit) |
eco-sync/sync-products-data?hash=… |
Eco — sync produktových dat |
D. Import a stav objednávek
Pull nových objednávek z marketplace + sync stavů a doručení. Viz docu DROP.
| Interval | Cron URL | Funkce |
|---|---|---|
*/5 * * * * |
console-mall/api-get-unconfirmed-orders?hash=… |
Mall — import nových objednávek |
*/10 * * * * |
console-mall/api-get-cancelled-orders?hash=… |
Mall — sync zrušených objednávek |
*/30 * * * * |
console-mall/sync-order-status-by-mall?hash=… |
Mall — sync stavu objednávek z Mall |
0 * * * * |
console-mall/check-delivery?hash=… |
Mall — tracking doručení (DPD / Uloženka) |
*/10 * * * * (ověřit) |
allegro-sync-orders/download-orders?hash=… |
Allegro — import nových objednávek |
*/15 * * * * (ověřit) |
allegro-sync-orders-shipping/sync-orders-shipping?hash=… |
Allegro — shipment (DPD) + odeslání faktury |
*/30 * * * * (ověřit) |
allegro-messaging/check-messaging?hash=… |
Allegro — komunikace se zákazníky |
*/10 * * * * (ověřit) |
decathlon-sync-orders/download-orders?hash=… |
Decathlon — import nových objednávek |
*/10 * * * * (ověřit) |
kaufland-orders/download-orders?hash=… |
Kaufland — import nových objednávek (multi-unit merge) |
E. Fakturace a billing
Upload faktur na marketplace + měsíční billing exporty.
| Interval | Cron URL | Funkce |
|---|---|---|
0 6 1 * * |
console-mall/generate-order-list-csv?hash=… |
Mall — měsíční billing CSV (1. den v měsíci) |
0 * * * * (ověřit) |
kaufland-orders/upload-invoices?hash=… |
Kaufland — upload faktur |
*/30 * * * * (ověřit) |
allegro-sync-orders/upload-invoices?hash=… |
Allegro — upload faktur (součást shipping flow) |
F. Údržba / retention
Čištění logů a dočasných dat.
| Interval | Cron URL | Funkce |
|---|---|---|
0 3 * * * |
sync-drop-log-cleanup/run?days=90 |
Retention cleanup sync_drop_log — smaže záznamy starší 90 dní |
30 4 * * * |
generated-files-cleanup/run?hash=…&days=90&apply=1 |
Retention www/generated/ — smaže soubory starší 3 měsíce ve všech podsložkách (štítky dopravců, feedy, faktury, CSV) |
0 4 * * 0 |
console-nomen-images/cleanup-orphans?hash=…&apply=1 |
Úklid orphan obrázků (viz sekce A) |
generated-files-cleanup/run je filesystem-driven (nezávisí na DB) — rekurzivně projde
www/generated/* a maže podle filemtime. Default je dry-run (apply=0, jen vypíše
počty per složka); ostrý běh vyžaduje apply=1. Maže jen soubory, adresáře zachovává.
sync-drop-log-cleanup/run nemá hash guard v tabulce záměrně — ověřit, zda ho v produkci chránit stejně jako ostatní.
Nutné pro tuto branch:
- Obrázky — sekce A (3 crony)
- Feedy — sekce B (1 cron)
- Mall — sekce C/D/E (Mall řádky)
- Údržba — sekce F (
generated-files-cleanup)
Ověřit proti staré sově:
- Řádky označené (ověřit) — intervaly Allegro / Decathlon / Kaufland / Alza / Eco jsou doporučené, přesnou kadenci vzít z produkčního crontabu staré sovy
- Některé DROP sync akce mají v presenterech zakomentované bloky (WIP port) — před zapnutím cronu ověřit, že akce je funkční
Před nasazením:
- Nastavit
hash(ConsoleBasePresenter::HASH_URL) - Ověřit prod host
sovang.vapol.cz - cleanup-orphans i generated-files-cleanup nejdřív
apply=0(dry-run) - Rozprostřít těžké denní úlohy (full sync, billing) do nočních hodin