Documentazione · Appendici
Riferimento dei cron hook
Questa appendice elenca ogni hook di WP-Cron e intervallo personalizzato registrato dal plugin ADP Car Market Hub.
Quando utilizzare questo documento
Utilizzare questo riferimento per diagnosticare le attività pianificate non eseguite, durante l'integrazione con i comandi cron di WP-CLI o quando si pianifica un cron di sistema esterno. Per la spiegazione narrativa completa, consultare Eventi cron e pianificatore e Cron hook per sviluppatori.
Panoramica
Il plugin utilizza WP-Cron per tutte le sue attività periodiche in background. WP-Cron è guidato dalle richieste: gli eventi si attivano al caricamento della pagina successivo o successivo all'orario pianificato. Su un sito a basso traffico, pianificare un cron lato server per chiamare wp-cron.php o l'endpoint REST cron-import del plugin.
Intervalli personalizzati
| Chiave intervallo | Durata | Registrato in | Utilizzato da |
|---|---|---|---|
as24ci_every_5_minutes | 300 s (5 min) | File principale del plugin adp-car-market-hub.php. Sempre registrato. | Coda di generazione AI. |
as24ci_every_6_hours | 6 h | AS24CI\Scheduler::add_cron_intervals(). | Importatore quando è selezionato "Ogni 6 ore". |
as24ci_custom | N minuti | AS24CI\Scheduler::add_cron_intervals(). N è as24ci_cron_custom_minutes, limitato a un minimo di 15 minuti. | Importatore quando è selezionato "Personalizzato". |
Gli intervalli standard di WordPress (hourly, twicedaily, daily) sono accettati anche dalla pianificazione dell'importazione.
Hook cron ricorrenti
as24ci_scheduled_import
- Proprietario:
AS24CI\Scheduler(Scheduler::CRON_HOOK). - Pianificazione: Gestita da
as24ci_cron_schedule(hourly,as24ci_every_6_hours,twicedaily,dailyoas24ci_custom). Perdaily/twicedaily, l'ora di inizio proviene daas24ci_cron_start_time(HH:MM, fuso orario del sito WordPress). - Attivo quando:
as24ci_auto_import_enabledè'1'. Aggiornato daScheduler::reschedule()ogni volta che vengono salvate le impostazioni di automazione. - Callback:
Scheduler::run_scheduled_import()→Scheduler::run_import('wp-cron'). - Blocco: Transient
as24ci_cron_import_running(~40 minuti di TTL). I blocchi obsoleti più vecchi del TTL vengono cancellati automaticamente. - Note: Condiviso con il pulsante di amministrazione manuale "Avvia ora" e l'endpoint cron REST. Tutti e tre i percorsi utilizzano lo stesso esecutore
Scheduler::run_import()e rispettano lo stesso blocco.
as24ci_image_queue_process
- Proprietario:
AS24CI\Scheduler(Scheduler::IMAGE_QUEUE_HOOK). - Pianificazione: Eventi singoli. L'importatore pianifica il worker quando mette in coda le immagini invece di scaricarle in linea; il worker si ripianifica autonomamente con
wp_schedule_single_event()finché rimangono elementi nella coda. - Callback:
Scheduler::run_image_queue(). - Blocco: Transient
as24ci_image_queue_running(~10 minuti di TTL). - Dimensione del batch:
Scheduler::IMAGE_QUEUE_BATCH_SIZE(30 immagini per batch nel codice sorgente corrente — verificare prima della pubblicazione se è necessario un valore esatto). - Note: La coda stessa è memorizzata nell'opzione
as24ci_image_queue. Le statistiche per batch vengono scritte inas24ci_image_queue_last_runper il widget della bacheca e la scheda Sistema e Aiuto.
as24ci_process_ai_queue
- Proprietario:
AS24CI\Ai_Assistant(Ai_Assistant::AI_QUEUE_HOOK); la callback dell'azione cron è associata daAS24CI\Scheduleranche quando l'opzione della funzionalità AI è disattivata, in modo che WP-Cron abbia sempre una callback per l'hook. - Pianificazione: Intervallo personalizzato
as24ci_every_5_minutes(300 secondi). La pianificazione è controllata daAi_Assistant::maybe_schedule_ai_queue(), che applica tutte le precondizioni (funzionalità AI abilitata, Gemini gestito configurato, automazione attiva). - Callback:
Ai_Assistant::process_ai_queue(). - Note: Quando l'automazione AI è disabilitata o non configurata, l'hook non è pianificato ma la sua callback rimane associata in modo che gli avvii manuali dall'amministrazione funzionino comunque.
as24ci_daily_cleanup
- Proprietario:
AS24CI\Analytics(Analytics::ANALYTICS_CLEANUP_CRON_HOOK). - Pianificazione:
daily. Pianificato daAS24CI\Pluginall'attivazione se non già pianificato; rimosso alla disattivazione. - Callback:
Analytics::cleanup_old_data(). - Comportamento: Rimuove le righe di analytics più vecchie di
as24ci_analytics_retention_daysdalla tabella{$wpdb->prefix}as24ci_analytics.
as24ci_pricing_analysis_cron
- Proprietario:
AS24CI\Pricing_Engine(Pricing_Engine::CRON_HOOK). - Pianificazione:
daily. Pianificato tramitePricing_Engine::schedule(); rimosso tramitePricing_Engine::clear_schedule()alla disattivazione. - Callback:
Pricing_Engine::run_daily_analysis().
as24ci_automated_taxonomy_scan
- Proprietario:
AS24CI\Data_Quality_Scanner(Data_Quality_Scanner::CRON_HOOK). - Pianificazione:
dailyotwicedaily, controllata daas24ci_dq_scan_frequency. L'orario della prima esecuzione è derivato daas24ci_dq_scan_time(HH:MM nel fuso orario del sito WordPress). La pianificazione viene ricostruita ogni volta che vengono salvate le relative opzioni. - Attivo quando:
as24ci_dq_scan_enabledè'1'. - Callback:
Data_Quality_Scanner::run_scan().
as24ci_license_refresh
- Proprietario:
AS24CI\License_Manager(License_Manager::REFRESH_CRON_HOOK). - Pianificazione:
daily. La prima esecuzione è pianificata un'ora dopo la creazione dell'evento. Pianificato in modo lazy daLicense_Manager::ensure_cron_scheduled()suadmin_inite all'attivazione del plugin; rimosso tramiteLicense_Manager::clear_cron()alla disattivazione. - Callback:
License_Manager::scheduled_refresh()— esegue una riconvalida in background della licenza rispetto alla piattaforma API. - Note: La callback del cron è sempre associata; solo la pianificazione è lazy, in modo che nessuna attività di pianificazione venga eseguita sulle normali richieste del frontend.
as24ci_webhook_retry
- Proprietario: Sottosistema Webhooks.
- Pianificazione: Eventi singoli. Pianificato dopo un tentativo di webhook per eseguire un rinvio bloccante di follow-up e per tentativi di riprovo limitati di tipo esponenziale su errori temporanei (~60 s, ~2 min, ~4 min, fino a tre tentativi in totale).
- Note: Verificare gli intervalli esatti e il numero di tentativi nel codice sorgente corrente prima di pubblicarli nella documentazione per il cliente.
as24ci_competitor_watcher_cron (solo pulizia legacy)
Questo hook apparteneva a una funzionalità Competitor Watcher rimossa e non è una funzionalità attiva del plugin. Il nome dell'hook viene mantenuto solo affinché Competitor_Watcher::clear_schedule() possa cancellare qualsiasi evento pianificato rimanente da installazioni precedenti alla disattivazione del plugin. Non esiste alcuna pianificazione, nessuna azione AJAX e nessuna interfaccia utente di amministrazione per esso. Non fare affidamento su questo hook da codice esterno.
Attivazione delle importazioni al di fuori di WP-Cron
Esistono due percorsi ufficialmente supportati per attivare un'importazione al di fuori di WP-Cron, entrambi delegati allo stesso esecutore Scheduler::run_import() e che rispettano lo stesso blocco:
- Endpoint REST cron —
GET /wp-json/as24ci/v1/cron-importcon autenticazione tramite token. Vedere Riferimento endpoint REST. - Attivazione manuale dall'amministrazione — il pulsante "Avvia ora" nella scheda di amministrazione Importazione e limiti. L'azione AJAX sottostante è
as24ci_trigger_import_now.
Il plugin registra anche un timestamp di heartbeat in as24ci_last_external_cron_run ogni volta che un qualsiasi URL del sito viene visitato con il parametro di query ?as24ci_cron=1. Questo heartbeat serve solo per il monitoraggio; non avvia un'importazione.
Note operative
- Gli eventi WP-Cron su un sito a basso traffico possono essere in ritardo o non essere eseguiti affatto. Per un comportamento prevedibile, configurare un cron lato server e disabilitare WP-Cron in
wp-config.php(define( 'DISABLE_WP_CRON', true );). - Quando si disabilita un modulo di funzionalità nell'amministrazione, i relativi eventi cron vengono annullati. Vengono ripianificati la volta successiva che la funzionalità viene riabilitata e il suo
register_hooks()viene eseguito durante il bootstrap del plugin. - Il worker della coda di immagini utilizza eventi singoli anziché una pianificazione ricorrente. Si pianifica solo se sono rimasti elementi nella coda.
- Tutti i nomi degli hook e le costanti sopra indicati riflettono il codice corrente del plugin. Verificare rispetto alla versione di destinazione prima di pubblicare codice di estensione che osserva questi hook.
Risoluzione dei problemi
as24ci_scheduled_importè nell'elenco dei cron ma non viene mai eseguito. WP-Cron è guidato dalle richieste. Visitare il sito, eseguirewp cron event run --due-nowtramite WP-CLI o configurare un trigger esterno.- I report di esecuzione dell'importazione indicano "Importazione già in corso". Il blocco
as24ci_cron_import_runningè attivo da parte di un altro esecutore. Il plugin cancella automaticamente i blocchi obsoleti una volta superato il TTL; in caso contrario, la disattivazione e la riattivazione del plugin cancellano il transient. - La coda delle immagini si interrompe. Controllare l'opzione
as24ci_image_queue_last_run(processed,failed,remaining). Se rimangono elementi ma non è pianificato alcun evento, eseguire "Elabora coda immagini ora" nell'amministrazione per riavviare il worker. - La coda AI non avanza. Confermare che la funzionalità AI sia abilitata, che la configurazione Gemini gestita sia predisposta (
Ai_Config::is_configured()) e che l'automazione sia attiva; in caso contrario, la pianificazione rimane disattivata. - La scansione della qualità dei dati viene eseguita all'orario errato. Salvare le opzioni pertinenti per attivare una ripianificazione e confermare il fuso orario del sito WordPress in Impostazioni → Generali.