Documentazione · Risoluzione dei problemi

Errori di cron

Questo documento copre i problemi relativi all'automazione delle importazioni pianificate, inclusi i malfunzionamenti di WP-Cron, i problemi di configurazione del cron del server e gli errori del worker della coda immagini.

Quando utilizzare questo documento

Leggi questo documento quando:

  • Le importazioni automatiche non vengono eseguite secondo la pianificazione configurata.
  • L'orario dell'ultima esecuzione dell'importazione visualizzato nella dashboard di amministrazione non avanza.
  • Il registro del plugin non mostra alcuna attività di importazione anche se l'automazione è abilitata.
  • L'endpoint REST del cron restituisce errori o non avvia le importazioni.
  • Il worker della coda immagini non elabora le immagini in coda.

Panoramica

Il plugin supporta due modalità di automazione dell'importazione:

  1. Modalità WP-Cron (predefinita): le importazioni vengono avviate dal sistema pseudo-cron integrato di WordPress (wp-cron.php). WP-Cron viene eseguito quando viene caricata una pagina di WordPress; sui siti a basso traffico potrebbe non attivarsi in modo affidabile.
  2. Modalità cron del server: un vero processo cron del sistema operativo chiama wp-cron.php o l'endpoint REST dedicato del plugin a un intervallo fisso. Questo metodo è più affidabile ed è consigliato per i siti in produzione.

Entrambe le modalità utilizzano lo stesso esecutore di importazione condiviso (Scheduler::run_import()). Il risultato è identico indipendentemente dall'attivatore utilizzato.

Opzioni di pianificazione disponibili

Quando l'automazione WP-Cron è abilitata, sono disponibili le seguenti pianificazioni:

Chiave di pianificazioneIntervallo
hourlyOgni 60 minuti
as24ci_every_6_hoursOgni 6 ore
twicedailyDue volte al giorno
dailyUna volta al giorno
as24ci_customIntervallo personalizzato (minimo 15 minuti, configurabile)

Per le pianificazioni daily e twicedaily, è possibile configurare un orario di inizio (HH:MM, formato 24 ore, nel fuso orario del sito WordPress). L'orario di inizio predefinito è 06:00.

Endpoint REST del cron

Il plugin registra un endpoint REST che può essere chiamato da un pianificatore esterno:

GET /wp-json/as24ci/v1/cron-import

L'autenticazione è obbligatoria. Il metodo preferito è:

Authorization: Bearer YOUR_TOKEN

Il token può anche essere passato come parametro di query (?token=YOUR_TOKEN), sebbene l'uso dell'intestazione sia raccomandato per evitare che il token appaia nei log di accesso del server.

Il token viene generato automaticamente ed è visibile nella scheda delle impostazioni Importazione e limiti del plugin. È possibile rigenerarlo dalla stessa schermata.

Worker della coda immagini

Durante le esecuzioni dell'importazione tramite cron e REST, quando la modalità coda immagini è abilitata, il plugin accoda le immagini rimanenti dei veicoli per l'elaborazione asincrona. Un hook WP-Cron separato (as24ci_image_queue_process) esegue il worker della coda immagini. Questo worker elabora fino a 30 immagini per lotto e continua fino a quando la coda non è vuota o il budget di tempo è esaurito. Se rimangono elementi, si ripianifica automaticamente.

Requisiti preliminari

  • L'importazione automatica è abilitata nelle impostazioni del plugin (scheda Importazione e limitiAutomazione).
  • È configurato almeno un Seller ID.
  • La connessione API è funzionante. Verifica nella pagina dello stato del sistema.
  • Per la modalità cron del server: l'ambiente di hosting supporta i processi pianificati (cron, attività pianificate o un servizio equivalente).

Passaggi diagnostici

Passaggio 1: Confermare che l'automazione sia abilitata

  1. Vai alla scheda Importazione e limitiAutomazione del plugin.
  2. Conferma che l'opzione Abilita importazione automatica sia attivata.
  3. Conferma che sia selezionata la pianificazione desiderata.
  4. Salva le impostazioni se sono state apportate modifiche.

Passaggio 2: Controllare l'orario dell'ultima esecuzione

  1. Nella dashboard di amministrazione del plugin o nella scheda Stato del sistema e aiuto, controlla il timestamp di Ultima esecuzione importazione.
  2. Se il timestamp è più vecchio di due intervalli di pianificazione completi, è probabile che l'automazione non si stia attivando.

Passaggio 3: Verificare che l'evento WP-Cron sia pianificato

Per la modalità WP-Cron:

  1. Utilizza un plugin di WordPress in grado di elencare gli eventi pianificati (ad esempio, WP Crontrol) o WP-CLI:
   wp cron event list
  1. Cerca l'hook as24ci_scheduled_import. Conferma che sia presente e che l'orario della sua prossima esecuzione sia nel futuro.
  2. Se l'hook è assente, salva nuovamente le impostazioni di automazione nel plugin per pianificarlo di nuovo.

Passaggio 4: Verificare che WP-Cron funzioni su questo sito

WP-Cron potrebbe essere disabilitato su alcuni ambienti di hosting o da plugin per le prestazioni:

  1. Controlla wp-config.php per la riga:
   define('DISABLE_WP_CRON', true);

Se questa costante è impostata su true, WP-Cron è disabilitato. È necessario utilizzare invece un cron del server o l'endpoint REST.

  1. Conferma che vengano effettuate regolarmente richieste di pagine al sito (almeno una volta per intervallo di pianificazione). Sui siti a basso traffico, WP-Cron potrebbe non attivarsi all'orario previsto.
  2. Utilizza un servizio che esegua regolarmente il ping dell'URL del tuo sito per garantire che WP-Cron abbia l'opportunità di essere eseguito, oppure passa alla modalità cron del server.

Passaggio 5: Testare l'endpoint REST del cron

Se stai utilizzando o pianifichi di utilizzare l'endpoint REST:

  1. Recupera il token del cron dalla sezione Importazione e limitiToken Cron.
  2. Invia una richiesta di test dal tuo server:
   curl -H "Authorization: Bearer YOUR_TOKEN" \
        "https://your-site.example.com/wp-json/as24ci/v1/cron-import"
  1. Una risposta corretta restituisce HTTP 200 con "success": true e i conteggi di importazione.
  2. Una risposta 403 indica un token non valido o mancante. Verifica il token nelle impostazioni del plugin.
  3. Una risposta 429 indica che l'importazione è già in corso (il blocco è attivo). Attendi e riprova.
  4. Una risposta 500 indica un'eccezione durante l'esecuzione dell'importazione. Controlla il registro del plugin per i dettagli.

Se l'API REST non è raggiungibile, conferma che i permalink personalizzati siano abilitati (Impostazioni → Permalink → Salva) e che l'API REST di WordPress non sia bloccata da un plugin di sicurezza o dalla configurazione del server.

Passaggio 6: Verificare la registrazione del ping del cron esterno

Se stai utilizzando un processo cron del server che chiama direttamente wp-cron.php, puoi aggiungere ?as24ci_cron=1 all'URL per registrare il ping:

https://your-site.example.com/wp-cron.php?doing_wp_cron&as24ci_cron=1

Il plugin registra il timestamp di questo ping e lo visualizza nella scheda Stato del sistema e aiuto come ora dell'ultima attività del cron esterno.

Passaggio 7: Controllare la presenza di un blocco di importazione obsoleto

Se un'esecuzione di importazione precedente è stata interrotta senza rilasciare il suo blocco, le esecuzioni successive verranno saltate per un massimo di 40 minuti. Il registro conterrà:

Import runner (wp-cron): already in progress, skipping.

Se il blocco è effettivamente obsoleto (l'esecuzione originale non è più attiva), attendi la scadenza del TTL di 40 minuti. Il blocco viene cancellato automaticamente se è più vecchio di 40 minuti quando tenta di avviarsi l'esecuzione successiva.

Per cancellare immediatamente il blocco:

  • Elimina il transient di WordPress as24ci_cron_import_running utilizzando un plugin di gestione dei transient o WP-CLI:
  wp transient delete as24ci_cron_import_running

Passaggio 8: Esaminare i guasti del worker della coda immagini

Se le immagini non vengono elaborate dopo l'importazione:

  1. Controlla il registro del plugin per voci contenenti Image queue worker.
  2. Conferma che l'hook as24ci_image_queue_process sia presente nell'elenco degli eventi WP-Cron.
  3. Se il blocco della coda immagini (as24ci_image_queue_running) è obsoleto, eliminalo:
   wp transient delete as24ci_image_queue_running

Il blocco della coda immagini ha un TTL di 10 minuti e viene anch'esso cancellato automaticamente quando è obsoleto.

  1. Controlla le statistiche di Ultima esecuzione coda immagini nella scheda Stato del sistema e aiuto per il conteggio degli elementi elaborati, falliti e rimanenti.

Riferimento di configurazione

ImpostazionePosizioneDescrizione
Abilita importazione automaticaImportazione e limiti → AutomazioneInterruttore principale per l'automazione WP-Cron. Predefinito: disabilitato.
PianificazioneImportazione e limiti → AutomazioneFrequenza di importazione. Predefinito: ogni ora.
Orario di inizioImportazione e limiti → AutomazionePer pianificazioni giornaliere / due volte al giorno. Predefinito: 06:00 (fuso orario del sito).
Intervallo personalizzato (minuti)Importazione e limiti → AutomazionePer pianificazione personalizzata. Minimo: 15 minuti. Predefinito: 30 minuti.
Modalità cronImportazione e limitiControlla quale tipo di attivatore viene utilizzato (wp-cron o server-cron).
Token cronImportazione e limitiToken segreto per l'endpoint REST. Generato automaticamente. Può essere rigenerato.
Max veicoli per esecuzioneImportazione e limitiLimita i veicoli elaborati per esecuzione automatica. 0 = illimitato.
Modalità coda immaginiImportazione e limitiAccoda le immagini aggiuntive dei veicoli per l'elaborazione in background. Predefinito: abilitato.

Note operative

  • Gli eventi WP-Cron richiedono il traffico di caricamento delle pagine per attivarsi. Sui siti di staging o di sviluppo senza visitatori regolari, WP-Cron non funzionerà in modo affidabile. Utilizza invece l'endpoint REST con un vero processo cron del server.
  • L'esecutore dell'importazione tenta di impostare un limite di tempo di esecuzione PHP di 300 secondi prima dell'esecuzione. Sull'hosting che limita set_time_limit, questo potrebbe non riuscire. In tal caso, il registro registrerà un avviso. Cataloghi molto grandi potrebbero andare in timeout su hosting restrittivi.
  • Il TTL del blocco per l'importazione principale è di 40 minuti (2400 secondi). Il blocco per il worker della coda immagini è di 10 minuti (600 secondi).
  • Il token del cron è memorizzato in testo non crittografato nelle opzioni di WordPress. Trattalo come un segreto. Non condividerlo nei forum pubblici e non inserirlo nel controllo di versione.
  • La coda delle immagini può contenere fino a 20.000 elementi prima che venga registrato un avviso e venga eseguito un passaggio di deduplicazione.
  • L'esecuzione dell'importazione tramite il pulsante di amministrazione Avvia ora utilizza lo stesso esecutore condiviso di WP-Cron e dell'endpoint REST. È soggetto allo stesso blocco e verrà bloccato se un'importazione è già in corso.

Risoluzione dei problemi

SintomoCausa probabileVerifica
Le importazioni non vengono eseguite automaticamenteImportazione automatica disabilitataAbilita l'automazione nelle impostazioni di Importazione e limiti
as24ci_scheduled_import non è nell'elenco cronL'evento è stato annullato dopo la modifica delle impostazioniSalva nuovamente le impostazioni di automazione per pianificarlo di nuovo
DISABLE_WP_CRON è impostatoWP-Cron è disabilitato a livello globaleUtilizza invece il cron del server o l'endpoint REST
L'importazione si avvia ma nel registro appare "già in corso"Blocco importazione obsoletoAttendi 40 minuti o elimina il transient as24ci_cron_import_running
L'endpoint REST restituisce HTTP 403Il token è errato, mancante o non configuratoVerifica il token nelle impostazioni di Importazione e limiti
L'endpoint REST restituisce HTTP 429Il blocco di importazione è attivoAttendi e riprova; se il problema persiste, elimina il transient del blocco
L'endpoint REST restituisce HTTP 500Eccezione durante l'importazioneControlla il registro per i dettagli
API REST non raggiungibilePermalink non impostati o API REST bloccataRigenera i permalink; controlla le impostazioni del plugin di sicurezza
La coda immagini non elaboraWP-Cron non può attivarsi o il blocco della coda immagini è obsoletoVerifica WP-Cron; elimina il transient as24ci_image_queue_running se obsoleto
L'ora dell'ultimo cron esterno non si aggiornaIl cron del server non chiama l'endpoint o ?as24ci_cron=1 non è aggiuntoVerifica il comando del processo cron e l'URL
L'importazione va in timeout su un catalogo di grandi dimensioniTempo di esecuzione PHP troppo breveUtilizza il cron del server; contatta l'hosting per aumentare il tempo massimo di esecuzione di PHP

Documenti correlati