Documentazione · Operazioni e manutenzione

Manutenzione della coda delle immagini

Questo documento spiega come funziona la coda asincrona delle immagini del plugin, come monitorarne l'avanzamento e come gestire, elaborare manualmente o svuotare la coda in produzione.

Quando utilizzare questo documento

Leggi questo documento se sei un amministratore del sito e hai bisogno di capire perché le immagini dei veicoli non vengono ancora visualizzate dopo un'importazione, perché la coda delle immagini sta crescendo o come gestire i download delle immagini su siti con cataloghi di grandi dimensioni o risorse del server limitate.

Panoramica

Quando la Modalità coda immagini è abilitata (l'impostazione predefinita per le importazioni pianificate e attivate tramite REST), il plugin non scarica tutte le immagini dei veicoli durante l'esecuzione dell'importazione principale. Al contrario:

  1. Solo la prima immagine di ogni veicolo viene scaricata immediatamente durante l'importazione.
  2. I restanti URL delle immagini vengono memorizzati in una coda persistente nella tabella delle opzioni WordPress (as24ci_image_queue).
  3. Dopo ogni esecuzione dell'importazione, un worker della coda delle immagini separato viene pianificato come evento singolo WP-Cron per elaborare le immagini in coda a lotti.
  4. Il worker viene eseguito ripetutamente, elaborando 30 immagini per lotto, finché la coda non è vuota o il budget di tempo non è esaurito.

Questo approccio mantiene ogni esecuzione dell'importazione breve e prevedibile, anche per cataloghi con molte immagini per veicolo.

Per le importazioni manuali avviate dalla scheda Importer (non tramite cron o REST), la modalità coda è disabilitata per impostazione predefinita e tutte le immagini vengono scaricate immediatamente durante l'importazione.

Come funziona il worker della coda delle immagini

Il worker della coda delle immagini:

  1. Acquisisce il proprio lock transient (as24ci_image_queue_running, TTL 10 minuti) per evitare la sovrapposizione di worker.
  2. Legge la coda corrente dall'opzione as24ci_image_queue.
  3. Elabora gli elementi in lotti di 30 immagini, verificando dopo ogni lotto se il budget di tempo (il TTL del lock meno 60 secondi, circa 540 secondi) è stato raggiunto.
  4. Riscrive la coda rimanente nel database dopo ogni lotto.
  5. Registra le statistiche di esecuzione (processed, failed, remaining, timestamp) nell'opzione as24ci_image_queue_last_run.
  6. Se rimangono elementi dopo l'esaurimento del budget di tempo, pianifica immediatamente un altro evento singolo WP-Cron in modo che l'elaborazione continui nella successiva richiesta disponibile.
  7. Rilascia il lock al termine.

Dopo che tutti gli elementi in coda per un post di un veicolo sono stati elaborati, il worker ricostruisce il post meta _as24ci_image_ids dagli ID effettivi degli allegati nel database e finalizza l'hash dell'immagine, in modo che la successiva esecuzione dell'importazione possa rilevare correttamente le modifiche future.

Deduping delle immagini

L'importatore di immagini deduplica le immagini in base all'URL di origine. Prima di scaricare un'immagine, verifica se esiste già un allegato con lo stesso post meta _as24ci_source_url. Se viene trovata una corrispondenza, l'allegato esistente viene riutilizzato anziché essere scaricato nuovamente. Questo si applica sia alle importazioni immediate che a quelle in modalità coda.

Ciò significa che la ripetizione di un'importazione o la rielaborazione della coda non creeranno allegati duplicati per le immagini che sono già state importate con successo.

Conversione in WebP

Se l'opzione Converti in WebP è abilitata, ogni immagine scaricata viene convertita in formato WebP prima di essere aggiunta alla libreria multimediale. Il plugin prova prima con GD, poi con Imagick come fallback. Se nessuno dei due è disponibile o la conversione fallisce, viene utilizzato il formato originale dell'immagine. I risultati della conversione vengono registrati a livello di avviso (warning) in caso di fallimento.

La qualità WebP è configurabile (1–100, predefinita 80). Il valore della qualità può anche essere sovrascritto a livello di codice tramite il filtro as24ci_webp_quality.

Monitoraggio della coda delle immagini

Scheda System & Help

  1. Apri ADP Car Market Hub → System & Help.
  2. Nella tabella Background Tasks, trova la riga Image Processor (hook: as24ci_image_queue_process).
  3. La colonna Next Run mostra quando è pianificata la successiva chiamata del worker.
  4. La colonna Status mostra: - Scheduled (verde) — un evento worker è in coda - Running (giallo) — il worker è attualmente attivo - Lock stuck (rosso) — è stato rilevato un lock bloccato; verrà rimosso automaticamente al successivo tentativo di esecuzione - Not scheduled (giallo) — nessun worker è attualmente in coda (previsto quando la coda è vuota)
  5. La scheda System & Help mostra un badge di avviso quando la dimensione della coda supera 1.000 elementi, indicando che l'elaborazione delle immagini è in ritardo.

Statistiche dell'ultima esecuzione della coda delle immagini

Il plugin memorizza i risultati dell'esecuzione più recente del worker nell'opzione as24ci_image_queue_last_run. Queste statistiche includono:

  • processed — immagini scaricate con successo nell'ultima esecuzione
  • failed — immagini che non è stato possibile scaricare
  • remaining — elementi ancora in attesa nella coda
  • timestamp — timestamp Unix dell'ultima esecuzione

Questi valori sono visualizzati nella scheda System & Help e possono essere utilizzati per valutare la velocità di elaborazione della coda.

Scheda Import & Limits

La scheda Automation fornisce azioni di controllo manuale per la coda delle immagini:

  • Run image queue now — avvia immediatamente il worker tramite una richiesta AJAX. Utile quando si desidera forzare l'elaborazione delle immagini senza attendere il successivo evento pianificato.
  • Clear image queue — elimina tutti gli elementi in attesa nella coda. Utilizza questa opzione quando desideri interrompere l'elaborazione delle immagini, ad esempio se è stato messo in coda un gran numero di immagini errate. Questa operazione non elimina le immagini che sono già state scaricate.

Passo dopo passo: elaborare una coda di immagini bloccata

  1. Apri ADP Car Market Hub → System & Help.
  2. Controlla la tabella Background Tasks per la riga Image Processor. Se lo stato è Not scheduled ma la coda non è vuota (il badge di avviso è visibile o le statistiche dell'ultima esecuzione mostrano un conteggio rimanente diverso da zero), l'evento cron del worker non è stato ripianificato.
  3. Fai clic su Run Image Queue Now nella barra delle azioni della scheda System & Help per avviare immediatamente un worker.
  4. Attendi il completamento dell'esecuzione (in genere da pochi secondi a qualche minuto a seconda delle dimensioni della coda).
  5. Aggiorna la scheda System & Help per verificare che la coda stia diminuendo.
  6. Se il worker viene eseguito ma la coda non diminuisce (ad esempio, se tutti i download delle immagini falliscono), controlla il registro per verificare la presenza di voci [ERROR] e [WARNING] relative a Image queue worker o Image download failed.

Passo dopo passo: svuotare la coda delle immagini

Utilizza questa procedura quando desideri annullare tutti i download di immagini in sospeso (ad esempio, dopo aver rimosso un Seller ID o dopo un'eliminazione massiva di veicoli).

  1. Apri ADP Car Market Hub → System & Help o Import & Limits.
  2. Fai clic su Clear Image Queue.
  3. Conferma l'azione quando richiesto.
  4. L'opzione della coda viene svuotata e non verranno eseguiti ulteriori download di immagini in background per gli elementi scartati.
  5. I veicoli per i quali sono state cancellate le immagini rimanenti avranno solo la prima immagine (scaricata durante l'esecuzione dell'importazione) fino alla successiva importazione completa.

Limiti di dimensione della coda

Il plugin impone un limite massimo di 20.000 elementi nella coda delle immagini. Se la coda supera questo limite, viene registrato un avviso e viene eseguito un passaggio di deduplicazione per compattare le voci duplicate. Verifica questo comportamento nella versione corrente del plugin prima della pubblicazione.

Riferimento di configurazione

ImpostazionePredefinitoScopo
Modalità coda immagini (as24ci_cron_image_queue)Attivo (1)Se abilitato, solo la prima immagine viene importata immediatamente durante le esecuzioni cron/REST; gli URL rimanenti vengono messi in coda
Max immagini per veicolo (as24ci_max_images)0 (illimitato)Limita il numero totale di immagini importate per veicolo, indipendentemente dalla modalità coda
Converti in WebP (as24ci_convert_to_webp)Disattivato (0)Converte le immagini scaricate in WebP prima di aggiungerle alla libreria multimediale
Qualità WebP (as24ci_webp_quality)80Qualità di conversione, 1–100
Dimensione lotto coda immagini30Fisso nel codice (Scheduler::IMAGEQUEUEBATCH_SIZE); non configurabile nell'interfaccia utente
TTL lock worker coda immagini600 secondi (10 min)Per quanto tempo viene mantenuto il lock del worker prima di essere considerato scaduto
Soglia di avviso coda immagini1.000 elementiDimensione della coda oltre la quale la scheda System & Help mostra un badge di avviso

Note operative

  • La modalità coda immagini viene applicata solo durante le importazioni attivate da WP-Cron o dall'endpoint REST cron. Le importazioni manuali dalla scheda Importer scaricano sempre tutte le immagini immediatamente (a meno che non si applichi il limite massimo di immagini).
  • La coda delle immagini persiste tra le esecuzioni di importazione. Se il worker non ha terminato l'elaborazione di un lotto precedente quando viene eseguita una nuova importazione, i nuovi URL delle immagini vengono accodati a quelli esistenti.
  • Se il post di un veicolo viene eliminato dopo che i relativi URL delle immagini sono stati messi in coda ma prima che il worker li elabori, il worker salta silenziosamente gli elementi il cui post non esiste più.
  • La coda delle immagini memorizza i metadati per elemento, inclusi l'ID del post del veicolo, il Listing ID, l'URL dell'immagine e un hash dell'immagine. Ciò consente al worker di finalizzare correttamente gli hash delle immagini dopo che tutte le immagini di un veicolo sono state elaborate.
  • Sui siti con cataloghi di grandi dimensioni (centinaia di veicoli con molte immagini ciascuno), la coda delle immagini può crescere fino a diverse migliaia di elementi dopo la prima importazione. Questo è un comportamento previsto. La coda diminuirà costantemente nel corso delle successive esecuzioni del worker, a condizione che WP-Cron (o l'hook cron del worker della coda delle immagini) sia in esecuzione.
  • Se lo spazio su disco nella directory degli upload è scarso, i download delle immagini falliranno. La scheda System & Help mostra lo spazio su disco disponibile. Libera spazio prima di eseguire un'importazione di immagini di grandi dimensioni.

Risoluzione dei problemi

SintomoCausa probabileVerifica
Le immagini dei veicoli non appaiono dopo l'importazioneLa modalità coda è attiva e il worker non è ancora stato eseguitoControlla lo stato della coda delle immagini nella scheda System & Help; fai clic su Run Image Queue Now
La dimensione della coda delle immagini non diminuisceIl cron del worker non è in esecuzione o tutti i download delle immagini fallisconoControlla lo stato di Background Tasks; esamina il registro per verificare la presenza di errori di download delle immagini
Errori Image download failed nel registroImmagini di origine non disponibili o timeout del downloadVerifica che l'annuncio sia ancora attivo in AutoScout24; controlla la connettività in uscita del server
Errori di conversione WebP nel registroGD o Imagick non disponibili o configurati in modo erratoControlla lo stato delle estensioni PHP nella scheda System & Help; disabilita la conversione WebP se non è necessaria
Badge Lock stuck per Image ProcessorIl worker non ha rilasciato correttamente il proprio lockIl lock si cancella automaticamente dopo 10 minuti; fai clic su Run Image Queue Now per ripristinare
La coda cresce a dismisuraMolte importazioni con grandi set di immagini; il worker non riesce a tenere il passoPrendi in considerazione la riduzione del numero massimo di immagini per veicolo; conferma che WP-Cron sia affidabile

Documenti correlati