Documentația se poate citi și de asistenții AI. Server MCP

Ilustromania.
Intră în aplicație

Ce rulează în fundal

Sarcinile care rulează fără un om în pagină: cele pornite din procesul API, worker-ul cozii de ieșire, executorii și unitățile programate pe serverul firmei, cu orele lor.

Pe scurt

Unde ruleazăCe e acolo
Procesul APItrei sarcini periodice: completarea meniului, pozele lipsă, avizele automate
Worker-ul (aplicatii/worker)livrarea cozii de ieșire evenimente_iesire
Executoriiprograme de pe serverul firmei care iau lucru din API, cu rolul executor
Unități programatetimere pe serverul firmei: verificarea canalelor, SPV, evidența, statisticile și altele

Tabelul orelor

Orele fixe sunt date cu fusul lor. Intervalele „la fiecare” nu depind de fus: se socotesc de la ultima rulare.

Coloana „În cod” spune ce scrie în unitățile din codul platformei. Coloana „Pe server” spune ce rulează de fapt pe serverul platformei, citit cu systemctl pe 12.11.2026. Unde cele două diferă, contează coloana „Pe server”: acolo programul a fost schimbat după nevoile restaurantului.

SarcinăÎn codPe serverCe face
Statistici social, rularea completăzilnic, 03:20, plus până la 2 min, ora Românieiinstalată, dar oprităcitește Facebook, Instagram, TikTok, cu 28 de zile înapoi
Statistici social, rularea ușoarăla 30 minzilnic, 03:30, ora Românieicontul, seriile și postările din ultimele 7 zile
Facturi primite din SPVluni–sâmbătă, 08:30, plus până la 2 min, ora Românieiunitatea din cod nu e instalată; rulează în locul ei o sincronizare SPV zilnică, la 03:00, ora României, cu un program din afara codului platformeiaduce facturile primite din ANAF e-Factura
Evidența, jobul zilniczilnic, 06:10, ora Românieinu e instalatăimport FGO și legarea automată a recurențelor
Registru ← FGOla minutul 07 și 37 al fiecărei ore, plus până la 1 minnu e instalatăse amână singur când serverul e încărcat peste 6
Specificațiile calculatoarelorzilnic, 03:00, ora PC 1, ca sarcină programată pe PC 1, nu pe servernu rulează pe server: serverul doar primește fișierul scris de PC 1model, procesor, RAM, disc și sistem pentru fișa tehnică, doar citire, fără stare live
Conexiunea canalelorla 1 minla 1 minstarea reală Wolt, Bolt, Glovo, Google, Pinterest, pentru Tabel Produse
Verificarea canalelorla 3 minla 5 mincitește canalele și scrie bifele din tabelul Produse
Pinterestla 5 mino dată pe oră, la minutul 20, ora Românieicitește pinii și scrie bifa Pinterest în tabel
Colectorul Jurnal livela 30 snu e instalatăce au făcut timerele și executorii, spre POST /v1/jurnal-live
Oglinda pe NASla 2 minnu e instalatăcopiază codul pe NAS, doar fast-forward
Finder, anunțurila 30 minzilnic, 03:30, ora Românieicolectorul de anunțuri: Storia, OLX, Publi24, Imobiliare, Anunțul
Finder, joburila 6 hinstalată, dar oprităcolectorul de anunțuri de joburi
Avize automatedupă 20:00, verificat la 10 min, ora Românieifirmele și contul sunt setate pe API-ul de producție; dacă trecerile rulează: neverificatcopiază avizele zilei pe ziua următoare; duminica e exclusă
Plasa pozelor lipsăla 30 minneverificatpornește generarea pozei pentru produsele active fără poză
Completarea meniuluila 60 minneverificatcompletează ce lipsește din fișele produselor

„Nu e instalată” înseamnă că unitatea nu există pe serverul platformei; dacă rulează pe altă mașină nu se poate vedea din cloud, deci acolo e neverificat. Ultimele trei rânduri rulează în procesul API și pornesc doar cu variabile din fișierul de setări al serverului, care nu se poate citi fără drept de administrator: de aceea sunt marcate „neverificat”.

Serverul rulează pe UTC (citit pe server: Etc/UTC). De aceea timerele cu oră fixă își scriu fusul Europe/Bucharest, iar trecerea la ora de vară sau de iarnă se face singură.

Sarcinile din procesul API

Cele trei pornesc după ce API-ul începe să asculte. Fiecare e oprită până primește lista de firme din mediu. Trecerile nu se suprapun: dacă una încă rulează, următoarea e sărită.

SarcinăPornită deInterval implicitCondiții
Completarea meniuluipornesteCompletarePeriodicaCOMPLETARE_MENIU_MINUTE = 60COMPLETARE_MENIU_FIRME; fără GEMINI_API_KEY se copiază doar de la produsul similar
Plasa pozelor lipsăpornestePozeLipsaPeriodicPOZE_LIPSA_MINUTE = 30COMPLETARE_MENIU_FIRME și POZA_AUTOMATA_CONT; cel mult POZE_LIPSA_LIMITA = 5 porniri pe trecere
Avizele automatepornesteAvizeAutomateAVIZE_AUTO_MINUTE = 10AVIZE_AUTO_FIRME și AVIZE_AUTO_CONT
  • Completarea scrie doar ce lipsește. Alergenii se scriu numai unde sunt „necompletați”, deci ce a declarat omul nu se suprascrie. Schimbările apar în events pe un cont tehnic, nu pe un om.
  • Pozele lipsă nu dublează o generare: un produs cu job activ sau cu o generare în ultimele 6 ore e sărit.
  • Avizele se copiază după ora 20 din București, din ultima zi cu avize, pe ziua de mâine. Duminica nu e nici zi țintă, nici sursă: luni se copiază sâmbăta. Copierea e idempotentă, deci verificarea la 10 minute nu creează dubluri.

O firmă care eșuează nu le oprește pe celelalte: eroarea se scrie în jurnalul API-ului, iar trecerea continuă.

Worker-ul: coada de ieșire

Worker-ul livrează evenimentele din tabelul evenimente_iesire (outbox) către o adresă dată în TINTA_URL.

PasCe face
La pornirenumără firmele vizibile; iese cu codul 2 dacă vede 0 firme (RLS), 3 dacă nu are drept de citire, 1 la altă eroare
O trecerepentru fiecare firmă ia cel mult 20 de evenimente și le livrează pe rând
LivrareaPOST cu Idempotency-Key = id-ul evenimentului; 2xx = livrata, altfel reîncercare
Eșeculdupă 5 încercări evenimentul devine esuata și nu se mai reia
Blocajulun eveniment rămas in_lucru peste 10 minute redevine eligibil
Oprireala SIGTERM termină evenimentul în curs și iese

Pauza dintre treceri e INTERVAL_MS, de cel puțin 100 ms. Timpul de livrare, TIMEOUT_MS, e implicit 10 secunde și trebuie să fie sub cele 10 minute de expirare, altfel worker-ul nu pornește.

Codul worker-ului mai are o funcție de reconciliere: compară prețul și disponibilitatea așteptate cu cele citite pe Wolt, Bolt și Glovo și scrie diferențele ca evenimente reconciliere.corectie. Funcția nu e chemată încă din bucla worker-ului, iar unitatea care pornește worker-ul nu e în codul platformei. Pe serverul platformei nu rulează nicio unitate de worker pentru coada de ieșire (citit 12.11.2026).

Executorii

Un executor este un program de pe serverul firmei care vorbește cu platforma doar prin API, cu un jeton de serviciu cu rolul executor. Jetoanele se citesc din JETOANE_SERVICIU și dintr-un dosar de jetoane. Un fișier stricat e sărit, ca să nu oprească API-ul.

RutăCine o folosește
GET /v1/facturi-din-bon/coada, …/coada/{id}/ia, …/coada/{id}/rezultat, …/cereri/{id}/emis-in-dlsexecutorul facturilor din bon (DLS)
POST /v1/spv/sincronizeazatimerul SPV
POST /v1/jurnal-livecolectorul Jurnal live
POST /v1/executori/social-statisticicolectorul de statistici social
POST /v1/wtso/proiecte, …/rulare/preia, …/rulare/{id}/logworker-ul de traducere și SEO al site-urilor
POST /v1/flux-lant/starestarea lanțului de produse
POST /v1/fidelitate/potrivirepotrivirea bonurilor de fidelitate
POST /v1/agentie/scraper/starestarea scraperului agenției

O cerere trece dacă oricare identitate a ei are rolul cerut: un jeton de executor valid nu e umbrit de un cookie de om. Modelul cozii este descris în Sisteme externe și executori.

Pornite la cerere, nu la oră

UnitatePornește când
Executorul săptămânii Meniului Zileiapare o cerere nouă de săptămână sau confirmarea Framer (unitate .path)
Puntea asistentuluirulează mereu și repornește la 3 s după o cădere; cel mult 2 cereri în paralel, 55 s pe cerere
Puntea imaginilorrulează mereu și repornește la 3 s; o cerere odată, 180 s pe cerere

Pe serverul platformei, niciuna dintre aceste trei unități nu e instalată cu numele din cod (citit 12.11.2026). Unde rulează: neverificat.

Patru timere sunt oprite deliberat și pornesc acum doar la cerere: executorii reducerilor Wolt și Glovo, tabul portalului și relogarea Bolt. Lipsa lor de pe server nu este o defecțiune.

A fost utilă pagina?
Documentație Ilustromania · ediția 12.11.2026Generată din codul platformei