RAG index
Reindicizza i contenuti modificati, genera chunk e embedding in batch paginati.
RAG 2.0Indicizzazione RAG, audit delle immagini, scansioni, citazioni, IndexNow, llms-full e report: tutto passa da gop_jobs. Fuori dalla richiesta dell'utente, dentro un sistema che sa riprovare, riprendersi e fare pulizia.
La tabella della coda conserva ogni richiesta con il contesto necessario per eseguirla, riprenderla o annullarla. Non è un transient che scade: è una struttura persistente e interrogabile.
Ogni colonna risponde a una domanda operativa: cosa devo fare, per quale oggetto, con quale priorità, chi lo sta facendo e quando riprovare.
| Campo | Ruolo | Perché conta |
|---|---|---|
job_type | Il tipo di lavoro da eseguire. | Instrada il job al gestore corretto. |
payload | Dati JSON: ID contenuto, allegato, URL, parametri. | Rende il job eseguibile senza stato implicito. |
dedupe_key | Impronta di tipo, oggetto e versione del payload. | Impedisce accodamenti duplicati. |
status | pending, running, completed, failed. | Rende visibile il punto del ciclo di vita. |
attempts | Numero di tentativi effettuati e massimo previsto. | Governa retry e fallimento definitivo. |
priority | Ordine di processamento. | Fa passare prima i job urgenti. |
locked_by / locked_at | Worker che ha preso il job e momento del lock. | Abilita stale recovery e diagnosi. |
available_at | Quando il job può essere eseguito o ritentato. | Implementa backoff e pianificazione. |
L'admin, un hook o un job padre accoda una richiesta. La dedupe key viene calcolata subito: se esiste già un job equivalente attivo, non viene creato nulla.
Un worker prende il job con una scrittura atomica, imposta lo stato running e registra il proprio lock con una scadenza.
Il gestore del tipo di job esegue il lavoro in batch controllati. Le chiamate AI passano dalla reserve/release del budget.
In caso di successo il job passa a completed. In caso di errore viene riprogrammato con backoff, oppure marcato failed dopo il numero massimo di tentativi.
Un lock scaduto riporta il job in pending. I job completati vengono eliminati secondo la retention; quelli falliti restano più a lungo per la diagnosi.
Ogni funzione pesante del plugin passa dalla coda. Nessuna di queste attività viene eseguita dentro il caricamento di una pagina admin o di una richiesta front-end.
Reindicizza i contenuti modificati, genera chunk e embedding in batch paginati.
RAG 2.0Analizza le immagini, propone alt text, rileva decorative e calcola il quality score.
Vision 2.0Aggiorna la tabella dei topic ed entità non coperti dal sito.
Content GapScansiona i contenuti idonei e aggiorna il repository degli issue.
Issue CenterVerifica lo stato delle citazioni e delle fonti collegate alle pagine.
E-E-A-TInvia a IndexNow gli URL modificati, senza bloccare il salvataggio del contenuto.
CrawlerRigenera il file llms-full.txt con i riassunti e il limite totale configurato.
llms.txtGenera report programmati, rollup giornalieri e dati per l'invio email.
ReportUna coda che non gestisce i fallimenti è solo un elenco di cose da fare. Queste quattro regole tengono il sistema prevedibile anche quando un worker muore.
La chiave combina tipo di job, oggetto e versione del payload. Se la stessa operazione è già pending o running, la nuova richiesta viene assorbita. Quando il contenuto cambia, la versione cambia e il job può essere riaccodato.
Il claim avviene con una singola operazione sul database. Due worker non possono ottenere lo stesso job, anche se partono nello stesso istante.
Un errore non brucia subito il job. I tentativi sono multipli e distanziati nel tempo; esaurito il massimo, lo stato diventa failed e l'errore resta leggibile nell'admin.
Se un worker si interrompe, il lock scade e il job torna disponibile. Il contatore dei tentativi sale, così un job che continua a rompere il worker non entra in loop infinito.
Gli hook sono registrati dal plugin e rimossi alla disattivazione. Le frequenze sono pensate per distribuire il lavoro senza creare picchi.
| Hook | Cadenza | Cosa attiva |
|---|---|---|
gop_run_queue | Ogni 5 minuti | Processa il prossimo batch di job pending. |
gop_rag_reindex | Ogni ora | Accoda la reindicizzazione dei contenuti modificati. |
gop_vision_audit | Ogni ora | Avvia gli audit alt-text mancanti o da rivedere. |
gop_content_gap_scan | Giornaliero | Aggiorna la tabella dei content gap. |
gop_issue_scan | Giornaliero | Scansiona i contenuti idonei e aggiorna il repository issue. |
gop_citation_check | Giornaliero | Verifica lo stato delle citazioni e delle fonti. |
gop_indexnow_submit | Ogni ora | Invia gli URL modificati al servizio IndexNow. |
gop_llms_full_rebuild | Giornaliero | Rigenera llms-full.txt con i contenuti aggiornati. |
gop_report_daily | Giornaliero | Prepara report programmati e rollup dei dati. |
gop_visibility_sync | Due volte al giorno | Sincronizza GSC e GA4 con l'AI Visibility Hub. |
gop_tracker_cleanup | Giornaliero | Applica la retention ai dati del tracker. |
gop_ai_usage_rollup | Giornaliero | Aggrega il ledger gop_ai_usage per report e controllo costi. |
gop_schema_cache_prune | Giornaliero | Rimuove le cache schema scadute. |
gop_jobs_prune | Giornaliero | Elimina i job completati oltre la retention. |
gop_retention_cleanup | Settimanale | Pulisce log, prompt log opzionali e dati scaduti. |
WP-Cron non è un vero scheduler: parte con le visite al sito. Su un sito con poco traffico, o con cache molto aggressiva, i job possono accumulare ritardo. La coda funziona lo stesso, ma per la produzione conviene un innesco affidabile.
wp-cron.phpSe il hosting blocca il cron o WP-CLI, la coda continua a funzionare con WP-Cron: perdi solo la garanzia di puntualità, non la persistenza dei job.
La coda è un sistema vivo: va ispezionata, pulita e a volte fermata. Tutto è disponibile dall'admin, senza toccare il database a mano.
I job completati vengono eliminati oltre la retention configurata. I falliti restano più a lungo, perché contengono l'informazione utile a capire cosa è andato storto.
Tool di manutenzioneAvvia la coda, rilancia un job fallito, annulla quelli in attesa, metti in pausa il processamento o ispeziona il payload direttamente dal pannello.
StrumentiLe pagine admin accodano soltanto. Nessuna chiamata AI, scansione o generazione parte durante il caricamento di una schermata o il salvataggio di un post.
Costi sotto controlloNo. WP-Cron avvia gli hook, ma la coda può essere processata anche da un cron di sistema o da un worker WP-CLI. Su siti con poco traffico il cron di sistema è la soluzione consigliata.
Il lock ha una scadenza. Un job rimasto in esecuzione oltre il limite torna in stato pending, incrementa il contatore dei tentativi e può essere ripreso da un altro worker.
Ogni job ha una dedupe key che combina tipo, oggetto e versione del payload. Se la stessa richiesta è già in coda o in esecuzione, non viene accodata una seconda volta.
I job prevedono tentativi multipli con backoff progressivo. Esaurito il numero massimo, lo stato diventa failed, l'errore resta visibile e il job può essere rilanciato manualmente dall'admin.
No. Il pruning elimina i job completati secondo la retention configurata e conserva più a lungo i job falliti, utili per la diagnosi.
Sì. Dai tool puoi avviare la coda, rilanciare un job fallito, annullare quelli in attesa, mettere in pausa il processamento, ispezionare il payload ed eseguire il pruning.
30 giorni di prova gratis, 14 giorni money back e tutte le funzioni Pro incluse. La Async Job Queue è nella licenza e muove tutte le automazioni del framework.