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:
- 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. - Modalità cron del server: un vero processo cron del sistema operativo chiama
wp-cron.phpo 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 pianificazione | Intervallo |
|---|---|
hourly | Ogni 60 minuti |
as24ci_every_6_hours | Ogni 6 ore |
twicedaily | Due volte al giorno |
daily | Una volta al giorno |
as24ci_custom | Intervallo 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 limiti → Automazione).
- È 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
- Vai alla scheda Importazione e limiti → Automazione del plugin.
- Conferma che l'opzione Abilita importazione automatica sia attivata.
- Conferma che sia selezionata la pianificazione desiderata.
- Salva le impostazioni se sono state apportate modifiche.
Passaggio 2: Controllare l'orario dell'ultima esecuzione
- Nella dashboard di amministrazione del plugin o nella scheda Stato del sistema e aiuto, controlla il timestamp di Ultima esecuzione importazione.
- 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:
- Utilizza un plugin di WordPress in grado di elencare gli eventi pianificati (ad esempio, WP Crontrol) o WP-CLI:
wp cron event list
- Cerca l'hook
as24ci_scheduled_import. Conferma che sia presente e che l'orario della sua prossima esecuzione sia nel futuro. - 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:
- Controlla
wp-config.phpper 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.
- 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.
- 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:
- Recupera il token del cron dalla sezione Importazione e limiti → Token Cron.
- 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"
- Una risposta corretta restituisce HTTP 200 con
"success": truee i conteggi di importazione. - Una risposta 403 indica un token non valido o mancante. Verifica il token nelle impostazioni del plugin.
- Una risposta 429 indica che l'importazione è già in corso (il blocco è attivo). Attendi e riprova.
- 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_runningutilizzando 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:
- Controlla il registro del plugin per voci contenenti
Image queue worker. - Conferma che l'hook
as24ci_image_queue_processsia presente nell'elenco degli eventi WP-Cron. - 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.
- 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
| Impostazione | Posizione | Descrizione |
|---|---|---|
| Abilita importazione automatica | Importazione e limiti → Automazione | Interruttore principale per l'automazione WP-Cron. Predefinito: disabilitato. |
| Pianificazione | Importazione e limiti → Automazione | Frequenza di importazione. Predefinito: ogni ora. |
| Orario di inizio | Importazione e limiti → Automazione | Per pianificazioni giornaliere / due volte al giorno. Predefinito: 06:00 (fuso orario del sito). |
| Intervallo personalizzato (minuti) | Importazione e limiti → Automazione | Per pianificazione personalizzata. Minimo: 15 minuti. Predefinito: 30 minuti. |
| Modalità cron | Importazione e limiti | Controlla quale tipo di attivatore viene utilizzato (wp-cron o server-cron). |
| Token cron | Importazione e limiti | Token segreto per l'endpoint REST. Generato automaticamente. Può essere rigenerato. |
| Max veicoli per esecuzione | Importazione e limiti | Limita i veicoli elaborati per esecuzione automatica. 0 = illimitato. |
| Modalità coda immagini | Importazione e limiti | Accoda 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
| Sintomo | Causa probabile | Verifica |
|---|---|---|
| Le importazioni non vengono eseguite automaticamente | Importazione automatica disabilitata | Abilita l'automazione nelle impostazioni di Importazione e limiti |
as24ci_scheduled_import non è nell'elenco cron | L'evento è stato annullato dopo la modifica delle impostazioni | Salva nuovamente le impostazioni di automazione per pianificarlo di nuovo |
DISABLE_WP_CRON è impostato | WP-Cron è disabilitato a livello globale | Utilizza invece il cron del server o l'endpoint REST |
| L'importazione si avvia ma nel registro appare "già in corso" | Blocco importazione obsoleto | Attendi 40 minuti o elimina il transient as24ci_cron_import_running |
| L'endpoint REST restituisce HTTP 403 | Il token è errato, mancante o non configurato | Verifica il token nelle impostazioni di Importazione e limiti |
| L'endpoint REST restituisce HTTP 429 | Il blocco di importazione è attivo | Attendi e riprova; se il problema persiste, elimina il transient del blocco |
| L'endpoint REST restituisce HTTP 500 | Eccezione durante l'importazione | Controlla il registro per i dettagli |
| API REST non raggiungibile | Permalink non impostati o API REST bloccata | Rigenera i permalink; controlla le impostazioni del plugin di sicurezza |
| La coda immagini non elabora | WP-Cron non può attivarsi o il blocco della coda immagini è obsoleto | Verifica WP-Cron; elimina il transient as24ci_image_queue_running se obsoleto |
| L'ora dell'ultimo cron esterno non si aggiorna | Il cron del server non chiama l'endpoint o ?as24ci_cron=1 non è aggiunto | Verifica il comando del processo cron e l'URL |
| L'importazione va in timeout su un catalogo di grandi dimensioni | Tempo di esecuzione PHP troppo breve | Utilizza il cron del server; contatta l'hosting per aumentare il tempo massimo di esecuzione di PHP |