Documentatie · Probleemoplossing

Cron-fouten

Dit document behandelt problemen met betrekking tot geplande importautomatisering, waaronder WP-Cron-fouten, server-cron-configuratieproblemen en image queue worker-fouten.

Wanneer dit document te gebruiken

Lees dit document wanneer:

  • Automatische imports niet volgens het geconfigureerde schema worden uitgevoerd.
  • De laatste importtijd die op het beheerdersdashboard wordt weergegeven, niet vooruitgaat.
  • Het plugin-logboek geen importactiviteit toont, hoewel automatisering is ingeschakeld.
  • Het op REST gebaseerde cron-eindpunt fouten retourneert of geen imports activeert.
  • De image queue worker geen afbeeldingen in de wachtrij verwerkt.

Overzicht

De plugin ondersteunt twee modi voor importautomatisering:

  1. WP-Cron-modus (standaard): imports worden geactiveerd door het ingebouwde pseudo-cron-systeem van WordPress (wp-cron.php). WP-Cron wordt uitgevoerd wanneer een WordPress-pagina wordt geladen; op websites met weinig verkeer start dit mogelijk niet betrouwbaar.
  2. Server-cron-modus: een echte cron-job van het besturingssysteem roept met een vast interval wp-cron.php of het speciale REST-eindpunt van de plugin aan. Dit is betrouwbaarder en wordt aanbevolen voor productiesites.

Beide modi gebruiken dezelfde gedeelde import-runner (Scheduler::run_import()). Het resultaat is identiek, ongeacht welke trigger wordt gebruikt.

Beschikbare schema-opties

Wanneer WP-Cron-automatisering is ingeschakeld, zijn de volgende schema's beschikbaar:

SchemasleutelInterval
hourlyElke 60 minuten
as24ci_every_6_hoursElke 6 uur
twicedailyTwee keer per dag
dailyEenmaal per dag
as24ci_customAangepast interval (minimaal 15 minuten, configureerbaar)

Voor de schema's daily en twicedaily kan een starttijd (UU:MM, 24-uurs indeling, in de tijdzone van de WordPress-site) worden geconfigureerd. De standaard starttijd is 06:00.

REST cron-eindpunt

De plugin registreert een REST-eindpunt dat kan worden aangeroepen door een externe planner:

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

Authenticatie is vereist. De voorkeursmethode is:

Authorization: Bearer YOUR_TOKEN

De token kan ook als queryparameter worden doorgegeven (?token=YOUR_TOKEN), hoewel het gebruik van de header wordt aanbevolen om te voorkomen dat de token in de toegangslogboeken van de server verschijnt.

De token wordt automatisch gegenereerd en is zichtbaar in het tabblad Import & Limieten van de plugin-instellingen. U kunt deze vanaf hetzelfde scherm opnieuw genereren.

Image queue worker

Tijdens cron- en REST-importruns plaatst de plugin, wanneer de image queue-modus is ingeschakeld, de resterende voertuigafbeeldingen in een wachtrij voor asynchrone verwerking. Een aparte WP-Cron-hook (as24ci_image_queue_process) voert de image queue worker uit. Deze worker verwerkt maximaal 30 afbeeldingen per batch en gaat door totdat de wachtrij leeg is of het tijdsbudget is overschreden. Als er items overblijven, plant deze zichzelf automatisch opnieuw in.

Vereisten

  • Automatische import is ingeschakeld in de plugin-instellingen (tabblad Import & LimietenAutomatisering).
  • Er is ten minste één Seller ID geconfigureerd.
  • De API-verbinding werkt. Controleer dit op de pagina Systeemstatus.
  • Voor server-cron-modus: de hostingomgeving ondersteunt geplande taken (cron, geplande taken of een gelijkwaardige service).

Diagnostische stappen

Stap 1: Bevestig dat automatisering is ingeschakeld

  1. Ga naar het tabblad Import & LimietenAutomatisering van de plugin.
  2. Bevestig dat Automatische import inschakelen is ingeschakeld.
  3. Bevestig dat het gewenste schema is geselecteerd.
  4. Sla de instellingen op als er wijzigingen zijn aangebracht.

Stap 2: Controleer de laatste run-tijd

  1. Controleer op het beheerdersdashboard van de plugin of op het tabblad Systeem & Hulp de tijdstempel van de Laatste importrun.
  2. Als de tijdstempel ouder is dan twee volledige schema-intervallen, start de automatisering waarschijnlijk niet.

Stap 3: Controleer of de WP-Cron-gebeurtenis is gepland

Voor WP-Cron-modus:

  1. Gebruik een WordPress-plugin die geplande gebeurtenissen kan weergeven (bijvoorbeeld WP Crontrol) of WP-CLI:
   wp cron event list
  1. Zoek naar de hook as24ci_scheduled_import. Bevestig dat deze aanwezig is en dat de volgende run-tijd in de toekomst ligt.
  2. Als de hook ontbreekt, sla dan de automatiseringsinstellingen in de plugin opnieuw op om deze opnieuw in te plannen.

Stap 4: Controleer of WP-Cron werkt op deze site

WP-Cron kan op sommige hostingomgevingen of door prestatie-plugins zijn uitgeschakeld:

  1. Controleer wp-config.php op de regel:
   define('DISABLE_WP_CRON', true);

Als deze constante is ingesteld op true, is WP-Cron uitgeschakeld. U moet in plaats daarvan een server-cron of het REST-eindpunt gebruiken.

  1. Controleer of er regelmatig paginasites worden opgevraagd (ten minste eenmaal per schema-interval). Op websites met weinig verkeer start WP-Cron mogelijk niet op de verwachte tijd.
  2. Gebruik een service die regelmatig uw site-URL pingt om ervoor te zorgen dat WP-Cron de kans krijgt om te draaien, of schakel over naar de server-cron-modus.

Stap 5: Test het REST cron-eindpunt

Als u het REST-eindpunt gebruikt of wilt gaan gebruiken:

  1. Haal de cron-token op uit de sectie Import & LimietenCron-token.
  2. Stuur een testverzoek vanaf uw server:
   curl -H "Authorization: Bearer YOUR_TOKEN" \
        "https://your-site.example.com/wp-json/as24ci/v1/cron-import"
  1. Een succesvolle reactie retourneert HTTP 200 met "success": true en importtellingen.
  2. Een 403-reactie geeft aan dat de token ongeldig is of ontbreekt. Controleer de token in de plugin-instellingen.
  3. Een 429-reactie geeft aan dat de import al in uitvoering is (vergrendeling is actief). Wacht en probeer het opnieuw.
  4. Een 500-reactie geeft aan dat er een uitzondering is opgetreden tijdens de importrun. Controleer het plugin-logboek voor details.

Als de REST API niet bereikbaar is, controleer dan of mooie permalinks zijn ingeschakeld (Instellingen → Permalinks → Wijzigingen opslaan) en of de WordPress REST API niet wordt geblokkeerd door een beveiligingsplugin of serverconfiguratie.

Stap 6: Controleer de registratie van de externe cron-ping

Als u een server-cron-job gebruikt die wp-cron.php rechtstreeks aanroept, kunt u ?as24ci_cron=1 aan de URL toevoegen om de ping te registreren:

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

De plugin registreert de tijdstempel van deze ping en geeft deze weer op het tabblad Systeem & Hulp als de laatste externe cron-activiteitstijd.

Stap 7: Controleer op een verouderde importvergrendeling

Als een eerdere importrun werd onderbroken zonder de vergrendeling vrij te geven, worden opeenvolgende runs maximaal 40 minuten overgeslagen. Het logboek zal het volgende bevatten:

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

Als de vergrendeling inderdaad verouderd is (de oorspronkelijke run is niet meer actief), wacht dan tot de TTL van 40 minuten is verstreken. De vergrendeling wordt automatisch gewist als deze ouder is dan 40 minuten wanneer de volgende run probeert te starten.

Om de vergrendeling onmiddellijk te wissen:

  • Verwijder de WordPress transient as24ci_cron_import_running met behulp van een plugin voor transient-beheer of WP-CLI:
  wp transient delete as24ci_cron_import_running

Stap 8: Onderzoek fouten van de image queue worker

Als afbeeldingen na de import niet worden verwerkt:

  1. Controleer het plugin-logboek op vermeldingen die Image queue worker bevatten.
  2. Bevestig dat de hook as24ci_image_queue_process aanwezig is in de WP-Cron-gebeurtenissenlijst.
  3. Als de image queue-vergrendeling (as24ci_image_queue_running) verouderd is, verwijder deze dan:
   wp transient delete as24ci_image_queue_running

De image queue-vergrendeling heeft een TTL van 10 minuten en wordt ook automatisch gewist wanneer deze verouderd is.

  1. Controleer de statistieken Laatste run image queue op het tabblad Systeem & Hulp voor het aantal verwerkte, mislukte en resterende items.

Configuratierreferentie

InstellingLocatieBeschrijving
Automatische import inschakelenImport & Limieten → AutomatiseringHoofdschakelaar voor WP-Cron-automatisering. Standaard: uitgeschakeld.
SchemaImport & Limieten → AutomatiseringImportfrequentie. Standaard: elk uur.
StarttijdImport & Limieten → AutomatiseringVoor dagelijkse / twee keer dagelijkse schema's. Standaard: 06:00 (tijdzone van de site).
Aangepast interval (minuten)Import & Limieten → AutomatiseringVoor aangepast schema. Minimaal: 15 minuten. Standaard: 30 minuten.
Cron-modusImport & LimietenBepaalt welk triggertype wordt gebruikt (wp-cron of server-cron).
Cron-tokenImport & LimietenGeheime token voor het REST-eindpunt. Automatisch gegenereerd. Kan opnieuw worden gegenereerd.
Max. voertuigen per runImport & LimietenBeperkt het aantal verwerkte voertuigen per automatische run. 0 = onbeperkt.
Image queue-modusImport & LimietenPlaats extra voertuigafbeeldingen in de wachtrij voor achtergrondverwerking. Standaard: ingeschakeld.

Operationele opmerkingen

  • WP-Cron-gebeurtenissen vereisen paginalaadverkeer om te starten. Op test- of ontwikkelingssites zonder regelmatige bezoekers zal WP-Cron niet betrouwbaar draaien. Gebruik in plaats daarvan het REST-eindpunt met een echte server-cron-job.
  • De import-runner probeert een PHP-uitvoeringstijdlimiet van 300 seconden in te stellen alvorens te starten. Op hosting die set_time_limit beperkt, slaagt dit mogelijk niet. Het logboek zal een waarschuwing registreren als dit gebeurt. Zeer grote catalogi kunnen een time-out veroorzaken op beperkende hosting.
  • De TTL van de vergrendeling voor de hoofdimport is 40 minuten (2400 seconden). De vergrendeling voor de image queue worker is 10 minuten (600 seconds).
  • De cron-token wordt in platte tekst opgeslagen in de WordPress-opties. Behandel deze als een geheim. Deel deze niet in openbare forums en leg deze niet vast in versiebeheer.
  • De image queue kan maximaal 20.000 items bevatten voordat een waarschuwing wordt gelogd en een ontdubbelingsronde wordt uitgevoerd.
  • Het uitvoeren van de import via de beheerknop Nu starten maakt gebruik van dezelfde gedeelde runner als WP-Cron en het REST-eindpunt. Het is onderworpen aan dezelfde vergrendeling en wordt geblokkeerd als er al een import in uitvoering is.

Probleemoplossing

SymptoomWaarschijnlijke oorzaakControle
Imports worden niet automatisch uitgevoerdAutomatische import uitgeschakeldSchakel automatisering in bij de instellingen voor Import & Limieten
as24ci_scheduled_import niet in cron-lijstGebeurtenis is uitgesteld na wijziging van instellingenSla de automatiseringsinstellingen opnieuw op om opnieuw in te plannen
DISABLE_WP_CRON is ingesteldWP-Cron is wereldwijd uitgeschakeldGebruik in plaats daarvan server-cron of het REST-eindpunt
Import start maar "al in uitvoering" in logboekVerouderde importvergrendelingWacht 40 minuten of verwijder de as24ci_cron_import_running transient
REST-eindpunt retourneert HTTP 403Token is onjuist, ontbreekt of is niet geconfigureerdControleer de token in de instellingen voor Import & Limieten
REST-eindpunt retourneert HTTP 429Importvergrendeling is actiefWacht en probeer het opnieuw; indien aanhoudend, verwijder de transient van de vergrendeling
REST-eindpunt retourneert HTTP 500Uitzondering tijdens importControleer het logboek voor details
REST API niet bereikbaarPermalinks niet ingesteld, of REST API geblokkeerdPermalinks opnieuw opslaan; controleer de instellingen van de beveiligingsplugin
Image queue verwerkt nietWP-Cron kan niet starten of image queue-vergrendeling is verouderdControleer WP-Cron; verwijder de as24ci_image_queue_running transient indien verouderd
Laatste externe cron-tijd wordt niet bijgewerktServer-cron roept het eindpunt niet aan of ?as24ci_cron=1 is niet toegevoegdControleer het cron-job-commando en de URL
Import veroorzaakt time-out bij grote catalogusPHP-uitvoeringstijd te kortGebruik server-cron; neem contact op met hosting om de maximale PHP-uitvoeringstijd te verhogen

Gerelateerde documenten