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.

IntervalCron URLFunkce
*/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.

IntervalCron URLFunkce
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.

IntervalCron URLFunkce
*/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.

IntervalCron URLFunkce
*/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.

IntervalCron URLFunkce
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.

IntervalCron URLFunkce
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í.

Deployment checklist

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
Pozn.: Intervaly jsou doporučené. Řádky bez (ověřit) odpovídají již dokumentovaným cronům (Mall / obrázky / feed); řádky s (ověřit) je nutné sladit s produkčním crontabem staré sovy.
Nomen
Otevřít celou stránku ↗

Načítání...

Karat objednávka
Otevřít celou stránku ↗

Načítání...