Gestione da Tenant Manager
Il Tenant Manager è la fonte di verità della configurazione dei tenant del crawler.
Definisce quali siti devono essere scansionati, il tipo di sito e l'eventuale sitemap personalizzata.
Il crawler non riceve aggiornamenti dal Tenant Manager in push.
Usa invece un approccio pull-based. È il crawler che legge periodicamente la configurazione dal Tenant Manager. Questo evita dipendenze runtime bidirezionali.
La sincronizzazione avviene manualmente o iin automatico prima di ogni crawl di tenant. Vale sia per i crawl manuali sia per quelli schedulati. In questo modo la configurazione usata dal crawler è sempre aggiornata.
Il crawler legge dal Tenant Manager solo i tenant del proprio ambito. I dati vengono filtrati con app='9qkaebmp6i7kvf7' e environment='prod'.
Cosa viene sincronizzato
Per ogni tenant, il crawler legge dal Tenant Manager i campi seguenti.
Identificativi del tenant
app_id— viene usato come slug univoco del tenant nel crawler.name— è il nome mostrato nelle dashboard operative.uuid— è l'identificativo stabile cross-sistema. Serve anche per rilevare i tenant rimossi.
Configurazione dei siti
Il campo config.sites[] contiene la lista dei siti da crawlare.
Per ogni sito vengono letti questi valori:
url— URL radice del sito.site_type— tipo di sito, ad esempiocomune,asl,museoocustom.sitemap_url_override— se presente, disattiva la discovery automatica della sitemap.
L'URL del sito viene normalizzato prima del salvataggio:
tutto in lowercase;
senza trailing slash;
senza query string.
Frequenza di scansione
config.default_scan_schedule— definisce la frequenza di crawl. Il valore predefinito èdaily.
Il Tenant Manager può gestire più applicazioni e più ambienti.
Il crawler legge solo i record che appartengono alla propria applicazione e al proprio ambiente. Il filtro applicato è app='9qkaebmp6i7kvf7' e environment='prod'.
Come avviene la sincronizzazione
La sincronizzazione avviene all'inizio del flow di crawl del tenant.
Dettaglio delle scritture
Per ogni tenant trovato:
se il tenant è nuovo viene creato;
se esiste già viene aggiornato;
Se un sito non è più presente nella configurazione del tenant:
il collegamento viene rimosso al tenant;
il sito non viene cancellato dalla lista di siti generale;
se non ha più tenant attivi collegati, viene disabilitato con
enabled=false.
Se il Tenant Manager non è raggiungibile, il sync restituisce errore ma il crawl prosegue. Il crawler usa la configurazione già presente nel database
Tenant manuali
I tenant creati manualmente dalla dashboard hanno source='manual'.
Questi tenant non vengono mai aggiornati né rimossi dal sync del Tenant Manager.
Lo stesso vale per le associazioni manuali tra tenant e siti.
Disabilitazione e storico dati
Quando un sito viene rimosso dal Tenant Manager:
l'associazione col tenant viene rimossa;
il sito può essere disabilitato;
le pagine già crawlate non vengono cancellate dal database.
Questo approccio conserva lo storico operativo e riduce i rischi in caso di errori temporanei.
Cosa non viene sincronizzato
Il Tenant Manager non sovrascrive tutta la configurazione del crawler.
Restano fuori dal sync questi elementi.
Parametri operativi del crawler
Non vengono letti né sovrascritti dal Tenant Manager:
max_pages;adaptive_crawl_delay;override manuali di
robots.txt;blocchi pagina;
altre impostazioni operative salvate nel database del crawler.
Stato runtime
Non vengono sincronizzati i dati operativi prodotti dal crawler:
crawl_status;conteggi pagine;
metriche;
risultati e stato delle scansioni.
Questi dati appartengono al runtime del crawler, non alla configurazione del tenant.
Come lanciare una sincronizzazione manuale
La sincronizzazione può essere avviata in tre modi.
1. Dalla dashboard monitor
Usa il pulsante Sync TM nella barra superiore.
2. Tramite flow di crawl
Lancia il flow di crawl per un tenant..
Il sync parte automaticamente come primo step, prima del crawl del tenant.
Questa è la modalità normale per i crawl manuali per singolo ente.
Cron schedulato
Il cron giornaliero scheduled_dispatch itera su tutti i tenant abilitati presenti nel database.
Per ogni tenant lancia il flow flow_crawl_tenant.
La sincronizzazione col Tenant Manager avviene quindi ogni giorno, prima del crawl di ogni tenant.
Se il Tenant Manager non è raggiungibile nel momento del cron, il crawl continua con i dati già presenti nel database.
Variabili di configurazione
f/crawler/tm_base_url
URL base API del Tenant Manager
https://manager-qa.opencityitalia.it/v1/api
Comportamento in caso di errori
Il sync è progettato per essere robusto e conservativo.
Se il Tenant Manager non è raggiungibile, il crawler registra un warning e procede con i dati già in database. Nessun dato viene cancellato o modificato.
Se un tenant è configurato in modo parziale, ad esempio senza siti, il tenant viene comunque creato o aggiornato. I siti precedenti vengono rimossi dalla pivot.
Se si verifica un errore su un singolo tenant, il sync degli altri tenant continua. L'errore viene tracciato nei log e incluso nel risultato finale.
Tutte le scritture su database avvengono in una singola transazione. Se la transazione fallisce, nessuna modifica viene salvata.
Ultimo aggiornamento
È stato utile?