Documentatie · Bijlagen

Cron Hook-referentie

Deze bijlage bevat een overzicht van elke WP-Cron hook en elk aangepast interval dat is geregistreerd door de ADP Car Market Hub-plugin.

Wanneer u dit document moet gebruiken

Gebruik deze referentie bij het diagnosticeren van gemiste geplande taken, bij het integreren met de cron-commando's van WP-CLI, of bij het plannen van een externe systeem-cron. Zie Cron-gebeurtenissen en planner en Cron Hooks voor ontwikkelaars voor de volledige tekstuele uitleg.

Overzicht

De plugin gebruikt WP-Cron voor al zijn periodieke achtergrondtaken. WP-Cron is verzoekgestuurd: gebeurtenissen worden geactiveerd bij de eerstvolgende paginaweergave op of na hun geplande tijdstip. Plan op een website met weinig verkeer een cron-job aan de serverzijde om wp-cron.php of het cron-import REST-eindpunt van de plugin aan te roepen.

Aangepaste intervallen

Interval-sleutelDuurGeregistreerd inGebruikt door
as24ci_every_5_minutes300 s (5 min)Hoofdpluginbestand adp-car-market-hub.php. Altijd geregistreerd.AI-generatiewachtrij.
as24ci_every_6_hours6 uurAS24CI\Scheduler::add_cron_intervals().Importer wanneer "Elke 6 uur" is geselecteerd.
as24ci_customN minutenAS24CI\Scheduler::add_cron_intervals(). N is as24ci_cron_custom_minutes, begrensd op een minimum van 15 minuten.Importer wanneer "Aangepast" is geselecteerd.

Standaard WordPress-intervallen (hourly, twicedaily, daily) worden ook geaccepteerd door het importschema.

Terugkerende cron hooks

as24ci_scheduled_import

  • Eigenaar: AS24CI\Scheduler (Scheduler::CRON_HOOK).
  • Schema: Aangestuurd door as24ci_cron_schedule (hourly, as24ci_every_6_hours, twicedaily, daily of as24ci_custom). Voor daily/twicedaily is de starttijd afkomstig van as24ci_cron_start_time (UU:MM, WordPress tijdzone van de site).
  • Actief wanneer: as24ci_auto_import_enabled is '1'. Wordt vernieuwd door Scheduler::reschedule() telkens wanneer automatiseringsinstellingen worden opgeslagen.
  • Callback: Scheduler::run_scheduled_import()Scheduler::run_import('wp-cron').
  • Vergrendeling: as24ci_cron_import_running transient (~40 minuten TTL). Verouderde vergrendelingen die ouder zijn dan de TTL worden automatisch gewist.
  • Opmerkingen: Gedeeld met de handmatige "Nu starten"-beheerdersknop en het REST-cron-eindpunt. Alle drie de paden gebruiken dezelfde Scheduler::run_import()-runner en respecteren dezelfde vergrendeling.

as24ci_image_queue_process

  • Eigenaar: AS24CI\Scheduler (Scheduler::IMAGE_QUEUE_HOOK).
  • Schema: Eenmalige gebeurtenissen. De Importer plant de worker in wanneer deze afbeeldingen in de wachtrij plaatst in plaats van ze inline te downloaden; de worker plant zichzelf opnieuw in met wp_schedule_single_event() zolang er items in de wachtrij staan.
  • Callback: Scheduler::run_image_queue().
  • Vergrendeling: as24ci_image_queue_running transient (~10 minuten TTL).
  • Batchgrootte: Scheduler::IMAGE_QUEUE_BATCH_SIZE (30 afbeeldingen per batch in de huidige broncode — controleer dit voor publicatie als u een exacte waarde nodig heeft).
  • Opmerkingen: De wachtrij zelf wordt opgeslagen in de optie as24ci_image_queue. Statistieken per batch worden weggeschreven naar as24ci_image_queue_last_run voor de dashboard-widget en het tabblad Systeem & Hulp.

as24ci_process_ai_queue

  • Eigenaar: AS24CI\Ai_Assistant (Ai_Assistant::AI_QUEUE_HOOK); de cron-actie callback is gekoppeld door AS24CI\Scheduler, zelfs wanneer de AI-functieschakelaar uit staat, zodat WP-Cron altijd een callback heeft voor de hook.
  • Schema: Aangepast interval as24ci_every_5_minutes (300 seconden). Het inplannen wordt gereguleerd door Ai_Assistant::maybe_schedule_ai_queue(), die alle randvoorwaarden afdwingt (AI-functie ingeschakeld, beheerde Gemini geconfigureerd, automatisering actief).
  • Callback: Ai_Assistant::process_ai_queue().
  • Opmerkingen: Wanneer AI-automatisering is uitgeschakeld of niet is geconfigureerd, is de hook niet ingepland, maar blijft de callback gekoppeld, zodat handmatige triggers vanuit het beheergedeelte nog steeds werken.

as24ci_daily_cleanup

  • Eigenaar: AS24CI\Analytics (Analytics::ANALYTICS_CLEANUP_CRON_HOOK).
  • Schema: daily. Ingepland door AS24CI\Plugin bij activering indien nog niet ingepland; gewist bij deactivering.
  • Callback: Analytics::cleanup_old_data().
  • Gedrag: Verwijdert analytics-rijen die ouder zijn dan as24ci_analytics_retention_days uit de {$wpdb->prefix}as24ci_analytics-tabel.

as24ci_pricing_analysis_cron

  • Eigenaar: AS24CI\Pricing_Engine (Pricing_Engine::CRON_HOOK).
  • Schema: daily. Ingepland via Pricing_Engine::schedule(); gewist via Pricing_Engine::clear_schedule() bij deactivering.
  • Callback: Pricing_Engine::run_daily_analysis().

as24ci_automated_taxonomy_scan

  • Eigenaar: AS24CI\Data_Quality_Scanner (Data_Quality_Scanner::CRON_HOOK).
  • Schema: daily of twicedaily, beheerd door as24ci_dq_scan_frequency. De tijd van de eerste uitvoering is afgeleid van as24ci_dq_scan_time (UU:MM in WordPress tijdzone van de site). Het schema wordt opnieuw opgebouwd telkens wanneer de gerelateerde opties worden opgeslagen.
  • Actief wanneer: as24ci_dq_scan_enabled is '1'.
  • Callback: Data_Quality_Scanner::run_scan().

as24ci_license_refresh

  • Eigenaar: AS24CI\License_Manager (License_Manager::REFRESH_CRON_HOOK).
  • Schema: daily. De eerste uitvoering is één uur na het aanmaken van de gebeurtenis gepland. Wordt lazy ingepland door License_Manager::ensure_cron_scheduled() op admin_init en bij plugin-activering; gewist via License_Manager::clear_cron() bij deactivering.
  • Callback: License_Manager::scheduled_refresh() — voert een achtergrond-herverificatie van de licentie uit tegen het API Platform.
  • Opmerkingen: De cron-callback is altijd gekoppeld; alleen het inplannen gebeurt lazy, zodat er geen planningstaken worden uitgevoerd bij gewone frontend-verzoeken.

as24ci_webhook_retry

  • Eigenaar: Webhooks-subsysteem.
  • Schema: Eenmalige gebeurtenissen. Ingepland na een webhook-poging om een opvolgende blokkerende herverzending uit te voeren en voor begrensde exponentiële herpogingen bij tijdelijke fouten (~60 s, ~2 min, ~4 min, tot maximaal drie pogingen in totaal).
  • Opmerkingen: Controleer de exacte intervallen en het aantal pogingen in de huidige broncode voordat u deze in de klantendocumentatie publiceert.

as24ci_competitor_watcher_cron (alleen legacy opschoning)

Deze hook behoorde toe aan een verwijderde Competitor Watcher-functie en is geen actieve functie van de plugin. De hook-naam is alleen behouden zodat Competitor_Watcher::clear_schedule() eventuele resterende ingeplande gebeurtenissen van oudere installaties kan wissen bij deactivering van de plugin. Er is geen planning, geen AJAX-actie en geen beheerinterface voor. Vertrouw niet op deze hook vanuit externe code.

Imports triggeren buiten WP-Cron

Er bestaan twee officieel ondersteunde paden om een import buiten WP-Cron om te triggeren, die beide delegeren naar dezelfde Scheduler::run_import()-runner en dezelfde vergrendeling respecteren:

  • REST-cron-eindpuntGET /wp-json/as24ci/v1/cron-import met token-authenticatie. Zie REST-eindpuntreferentie.
  • Handmatige beheerdertrigger — de knop "Nu starten" op het tabblad Import & Limieten in het beheergedeelte. De onderliggende AJAX-actie is as24ci_trigger_import_now.

De plugin registreert ook een heartbeat-tijdstempel in as24ci_last_external_cron_run telkens wanneer een URL op de site wordt aangeroepen met de queryparameter ?as24ci_cron=1. Deze heartbeat is alleen voor monitoring; het start geen import.

Operationele opmerkingen

  • WP-Cron-gebeurtenissen op een website met weinig verkeer kunnen te laat of helemaal niet worden uitgevoerd. Configureer voor voorspelbaar gedrag een cron-job op de server en schakel WP-Cron uit in wp-config.php (define( 'DISABLE_WP_CRON', true );).
  • Wanneer u een functiemodule uitschakelt in het beheergedeelte, worden de gerelateerde cron-gebeurtenissen uit de planning verwijderd. Ze worden opnieuw ingepland de volgende keer dat de functie opnieuw wordt ingeschakeld en de bijbehorende register_hooks() wordt uitgevoerd tijdens het opstarten van de plugin.
  • De afbeeldingenwachtrij-worker gebruikt eenmalige gebeurtenissen in plaats van een terugkerend schema. Deze plant zichzelf alleen in als er nog items in de wachtrij staan.
  • Alle bovenstaande hook-namen en constanten weerspiegelen de huidige plugin-code. Controleer dit met de versie waarop u zich richt voordat u extensiecode publiceert die naar deze hooks luistert.

Probleemoplossing

  • as24ci_scheduled_import staat in de cron-lijst maar wordt nooit uitgevoerd. WP-Cron is verzoekgestuurd. Bezoek de site, voer wp cron event run --due-now uit via WP-CLI, of configureer een externe trigger.
  • Import-uitvoeringen melden "Import al in uitvoering". De as24ci_cron_import_running-vergrendeling wordt vastgehouden door een andere runner. De plugin wist verouderde vergrendelingen automatisch zodra ze de TTL overschrijden; anders wist het deactiveren en opnieuw activeren van de plugin de transient.
  • Afbeeldingenwachtrij stopt. Controleer de optie as24ci_image_queue_last_run (processed, failed, remaining). Als er items overblijven maar er is geen gebeurtenis ingepland, voer dan "Afbeeldingenwachtrij nu verwerken" uit in het beheergedeelte om de worker opnieuw te starten.
  • AI-wachtrij loopt niet door. Controleer of de AI-functie is ingeschakeld, de beheerde Gemini-configuratie is ingericht (Ai_Config::is_configured()) en automatisering aan staat; anders blijft het inplannen uitgeschakeld.
  • Datakwaliteitsscan wordt op het verkeerde tijdstip uitgevoerd. Sla de relevante opties op om een herplanning te triggeren, en controleer de WordPress tijdzone van de site in Instellingen → Algemeen.

Gerelateerde documenten