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:
- 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. - Server-cron-modus: een echte cron-job van het besturingssysteem roept met een vast interval
wp-cron.phpof 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:
| Schemasleutel | Interval |
|---|---|
hourly | Elke 60 minuten |
as24ci_every_6_hours | Elke 6 uur |
twicedaily | Twee keer per dag |
daily | Eenmaal per dag |
as24ci_custom | Aangepast 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 & Limieten → Automatisering).
- 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
- Ga naar het tabblad Import & Limieten → Automatisering van de plugin.
- Bevestig dat Automatische import inschakelen is ingeschakeld.
- Bevestig dat het gewenste schema is geselecteerd.
- Sla de instellingen op als er wijzigingen zijn aangebracht.
Stap 2: Controleer de laatste run-tijd
- Controleer op het beheerdersdashboard van de plugin of op het tabblad Systeem & Hulp de tijdstempel van de Laatste importrun.
- 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:
- Gebruik een WordPress-plugin die geplande gebeurtenissen kan weergeven (bijvoorbeeld WP Crontrol) of WP-CLI:
wp cron event list
- Zoek naar de hook
as24ci_scheduled_import. Bevestig dat deze aanwezig is en dat de volgende run-tijd in de toekomst ligt. - 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:
- Controleer
wp-config.phpop 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.
- 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.
- 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:
- Haal de cron-token op uit de sectie Import & Limieten → Cron-token.
- Stuur een testverzoek vanaf uw server:
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://your-site.example.com/wp-json/as24ci/v1/cron-import"
- Een succesvolle reactie retourneert HTTP 200 met
"success": trueen importtellingen. - Een 403-reactie geeft aan dat de token ongeldig is of ontbreekt. Controleer de token in de plugin-instellingen.
- Een 429-reactie geeft aan dat de import al in uitvoering is (vergrendeling is actief). Wacht en probeer het opnieuw.
- 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_runningmet 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:
- Controleer het plugin-logboek op vermeldingen die
Image queue workerbevatten. - Bevestig dat de hook
as24ci_image_queue_processaanwezig is in de WP-Cron-gebeurtenissenlijst. - 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.
- Controleer de statistieken Laatste run image queue op het tabblad Systeem & Hulp voor het aantal verwerkte, mislukte en resterende items.
Configuratierreferentie
| Instelling | Locatie | Beschrijving |
|---|---|---|
| Automatische import inschakelen | Import & Limieten → Automatisering | Hoofdschakelaar voor WP-Cron-automatisering. Standaard: uitgeschakeld. |
| Schema | Import & Limieten → Automatisering | Importfrequentie. Standaard: elk uur. |
| Starttijd | Import & Limieten → Automatisering | Voor dagelijkse / twee keer dagelijkse schema's. Standaard: 06:00 (tijdzone van de site). |
| Aangepast interval (minuten) | Import & Limieten → Automatisering | Voor aangepast schema. Minimaal: 15 minuten. Standaard: 30 minuten. |
| Cron-modus | Import & Limieten | Bepaalt welk triggertype wordt gebruikt (wp-cron of server-cron). |
| Cron-token | Import & Limieten | Geheime token voor het REST-eindpunt. Automatisch gegenereerd. Kan opnieuw worden gegenereerd. |
| Max. voertuigen per run | Import & Limieten | Beperkt het aantal verwerkte voertuigen per automatische run. 0 = onbeperkt. |
| Image queue-modus | Import & Limieten | Plaats 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_limitbeperkt, 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
| Symptoom | Waarschijnlijke oorzaak | Controle |
|---|---|---|
| Imports worden niet automatisch uitgevoerd | Automatische import uitgeschakeld | Schakel automatisering in bij de instellingen voor Import & Limieten |
as24ci_scheduled_import niet in cron-lijst | Gebeurtenis is uitgesteld na wijziging van instellingen | Sla de automatiseringsinstellingen opnieuw op om opnieuw in te plannen |
DISABLE_WP_CRON is ingesteld | WP-Cron is wereldwijd uitgeschakeld | Gebruik in plaats daarvan server-cron of het REST-eindpunt |
| Import start maar "al in uitvoering" in logboek | Verouderde importvergrendeling | Wacht 40 minuten of verwijder de as24ci_cron_import_running transient |
| REST-eindpunt retourneert HTTP 403 | Token is onjuist, ontbreekt of is niet geconfigureerd | Controleer de token in de instellingen voor Import & Limieten |
| REST-eindpunt retourneert HTTP 429 | Importvergrendeling is actief | Wacht en probeer het opnieuw; indien aanhoudend, verwijder de transient van de vergrendeling |
| REST-eindpunt retourneert HTTP 500 | Uitzondering tijdens import | Controleer het logboek voor details |
| REST API niet bereikbaar | Permalinks niet ingesteld, of REST API geblokkeerd | Permalinks opnieuw opslaan; controleer de instellingen van de beveiligingsplugin |
| Image queue verwerkt niet | WP-Cron kan niet starten of image queue-vergrendeling is verouderd | Controleer WP-Cron; verwijder de as24ci_image_queue_running transient indien verouderd |
| Laatste externe cron-tijd wordt niet bijgewerkt | Server-cron roept het eindpunt niet aan of ?as24ci_cron=1 is niet toegevoegd | Controleer het cron-job-commando en de URL |
| Import veroorzaakt time-out bij grote catalogus | PHP-uitvoeringstijd te kort | Gebruik server-cron; neem contact op met hosting om de maximale PHP-uitvoeringstijd te verhogen |