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-sleutel | Duur | Geregistreerd in | Gebruikt door |
|---|---|---|---|
as24ci_every_5_minutes | 300 s (5 min) | Hoofdpluginbestand adp-car-market-hub.php. Altijd geregistreerd. | AI-generatiewachtrij. |
as24ci_every_6_hours | 6 uur | AS24CI\Scheduler::add_cron_intervals(). | Importer wanneer "Elke 6 uur" is geselecteerd. |
as24ci_custom | N minuten | AS24CI\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,dailyofas24ci_custom). Voordaily/twicedailyis de starttijd afkomstig vanas24ci_cron_start_time(UU:MM, WordPress tijdzone van de site). - Actief wanneer:
as24ci_auto_import_enabledis'1'. Wordt vernieuwd doorScheduler::reschedule()telkens wanneer automatiseringsinstellingen worden opgeslagen. - Callback:
Scheduler::run_scheduled_import()→Scheduler::run_import('wp-cron'). - Vergrendeling:
as24ci_cron_import_runningtransient (~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_runningtransient (~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 naaras24ci_image_queue_last_runvoor 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 doorAS24CI\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 doorAi_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 doorAS24CI\Pluginbij activering indien nog niet ingepland; gewist bij deactivering. - Callback:
Analytics::cleanup_old_data(). - Gedrag: Verwijdert analytics-rijen die ouder zijn dan
as24ci_analytics_retention_daysuit de{$wpdb->prefix}as24ci_analytics-tabel.
as24ci_pricing_analysis_cron
- Eigenaar:
AS24CI\Pricing_Engine(Pricing_Engine::CRON_HOOK). - Schema:
daily. Ingepland viaPricing_Engine::schedule(); gewist viaPricing_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:
dailyoftwicedaily, beheerd dooras24ci_dq_scan_frequency. De tijd van de eerste uitvoering is afgeleid vanas24ci_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_enabledis'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 doorLicense_Manager::ensure_cron_scheduled()opadmin_initen bij plugin-activering; gewist viaLicense_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-eindpunt —
GET /wp-json/as24ci/v1/cron-importmet 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_importstaat in de cron-lijst maar wordt nooit uitgevoerd. WP-Cron is verzoekgestuurd. Bezoek de site, voerwp cron event run --due-nowuit 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.