Dokumentation · Fehlerbehebung
Cron-Fehler
Dieses Dokument behandelt Probleme im Zusammenhang mit der automatischen Import-Steuerung, einschließlich WP-Cron-Fehlern, Problemen bei der Server-Cron-Konfiguration und Fehlern des Bild-Warteschlangen-Workers.
Wann Sie dieses Dokument verwenden sollten
Lesen Sie dieses Dokument, wenn:
- Automatische Importe nicht zum konfigurierten Zeitpunkt ausgeführt werden.
- Die auf dem Admin-Dashboard angezeigte Zeit des letzten Importlaufs sich nicht aktualisiert.
- Das Plugin-Protokoll keine Importaktivität anzeigt, obwohl die Automatisierung aktiviert ist.
- Der REST-basierte Cron-Endpunkt Fehler zurückgibt oder keine Importe auslöst.
- Der Bild-Warteschlangen-Worker in der Warteschlange befindliche Bilder nicht verarbeitet.
Übersicht
Das Plugin unterstützt zwei Modi für die Import-Automatisierung:
- WP-Cron-Modus (Standard): Importe werden durch das in WordPress integrierte Pseudo-Cron-System (
wp-cron.php) ausgelöst. WP-Cron wird ausgeführt, wenn eine WordPress-Seite geladen wird; auf Websites mit geringem Traffic läuft es möglicherweise nicht zuverlässig. - Server-Cron-Modus: Ein echter Cron-Job des Betriebssystems ruft in einem festen Intervall entweder
wp-cron.phpoder den dedizierten REST-Endpunkt des Plugins auf. Dies ist zuverlässiger und wird für Live-Websites empfohlen.
Beide Modi verwenden denselben gemeinsamen Import-Runner (Scheduler::run_import()). Das Ergebnis ist identisch, unabhängig davon, welcher Trigger verwendet wird.
Verfügbare Zeitplan-Optionen
Wenn die WP-Cron-Automatisierung aktiviert ist, stehen die folgenden Zeitpläne zur Verfügung:
| Zeitplan-Schlüssel | Intervall |
|---|---|
hourly | Alle 60 Minuten |
as24ci_every_6_hours | Alle 6 Stunden |
twicedaily | Zweimal täglich |
daily | Einmal täglich |
as24ci_custom | Benutzerdefiniertes Intervall (Mindestens 15 Minuten, konfigurierbar) |
Für die Zeitpläne daily und twicedaily kann eine Startzeit (HH:MM, 24-Stunden-Format, in der Zeitzone der WordPress-Website) konfiguriert werden. Die Standard-Startzeit ist 06:00.
REST-Cron-Endpunkt
Das Plugin registriert einen REST-Endpunkt, der von einem externen Scheduler aufgerufen werden kann:
GET /wp-json/as24ci/v1/cron-import
Eine Authentifizierung ist erforderlich. Die bevorzugte Methode ist:
Authorization: Bearer YOUR_TOKEN
Das Token kann auch als Query-Parameter (?token=YOUR_TOKEN) übergeben werden, wobei die Verwendung des Headers empfohlen wird, um zu verhindern, dass das Token in den Server-Zugriffsprotokollen erscheint.
Das Token wird automatisch generiert und ist im Plugin-Einstellungs-Tab Import & Limits sichtbar. Sie können es auf derselben Seite neu generieren.
Bild-Warteschlangen-Worker
Während der Cron- und REST-Importläufe reiht das Plugin bei aktiviertem Bild-Warteschlangen-Modus verbleibende Fahrzeugbilder für die asynchrone Verarbeitung in eine Warteschlange ein. Ein separater WP-Cron-Hook (as24ci_image_queue_process) führt den Bild-Warteschlangen-Worker aus. Dieser Worker verarbeitet bis zu 30 Bilder pro Durchlauf und läuft so lange, bis die Warteschlange leer ist oder das Zeitbudget erschöpft ist. Wenn Elemente übrig bleiben, plant er sich automatisch neu.
Voraussetzungen
- Der automatische Import ist in den Plugin-Einstellungen aktiviert (Tab Import & Limits → Automatisierung).
- Mindestens eine Seller ID ist konfiguriert.
- Die API-Verbindung funktioniert. Überprüfen Sie dies auf der Systemstatus-Seite.
- Für den Server-Cron-Modus: Die Hosting-Umgebung unterstützt geplante Aufgaben (Cron, geplante Aufgaben oder einen gleichwertigen Dienst).
Diagnoseschritte
Schritt 1: Bestätigen, dass die Automatisierung aktiviert ist
- Gehen Sie im Plugin auf den Tab Import & Limits → Automatisierung.
- Bestätigen Sie, dass Automatischen Import aktivieren eingeschaltet ist.
- Bestätigen Sie, dass der gewünschte Zeitplan ausgewählt ist.
- Speichern Sie die Einstellungen, falls Änderungen vorgenommen wurden.
Schritt 2: Letzte Laufzeit überprüfen
- Überprüfen Sie auf dem Admin-Dashboard des Plugins oder auf dem Tab „System & Hilfe“ den Zeitstempel für Letzter Importlauf.
- Wenn der Zeitstempel älter als zwei vollständige Zeitplan-Intervalle ist, wird die Automatisierung wahrscheinlich nicht ausgelöst.
Schritt 3: Überprüfen, ob das WP-Cron-Ereignis geplant ist
Für den WP-Cron-Modus:
- Verwenden Sie ein WordPress-Plugin, das geplante Ereignisse auflisten kann (z. B. WP Crontrol), oder WP-CLI:
wp cron event list
- Suchen Sie nach dem Hook
as24ci_scheduled_import. Bestätigen Sie, dass er vorhanden ist und seine nächste Laufzeit in der Zukunft liegt. - Wenn der Hook fehlt, speichern Sie die Automatisierungseinstellungen im Plugin erneut, um ihn neu zu planen.
Schritt 4: Überprüfen, ob WP-Cron auf dieser Website funktioniert
WP-Cron kann auf einigen Hosting-Umgebungen oder durch Performance-Plugins deaktiviert sein:
- Überprüfen Sie die Datei
wp-config.phpauf folgende Zeile:
define('DISABLE_WP_CRON', true);
Wenn diese Konstante auf true gesetzt ist, ist WP-Cron deaktiviert. Sie müssen stattdessen einen Server-Cron oder den REST-Endpunkt verwenden.
- Stellen Sie sicher, dass regelmäßig Seitenaufrufe auf der Website stattfinden (mindestens einmal pro Zeitplan-Intervall). Auf Websites mit geringem Traffic wird WP-Cron möglicherweise nicht zur erwarteten Zeit ausgelöst.
- Nutzen Sie einen Dienst, der Ihre Website-URL regelmäßig anpingt, um sicherzustellen, dass WP-Cron die Möglichkeit zur Ausführung erhält, oder wechseln Sie in den Server-Cron-Modus.
Schritt 5: Den REST-Cron-Endpunkt testen
Wenn Sie den REST-Endpunkt verwenden oder verwenden möchten:
- Rufen Sie das Cron-Token im Bereich Import & Limits → Cron-Token ab.
- Senden Sie eine Testanfrage von Ihrem Server:
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://your-site.example.com/wp-json/as24ci/v1/cron-import"
- Eine erfolgreiche Antwort gibt HTTP 200 mit
"success": trueund den Import-Zahlen zurück. - Eine 403-Antwort weist auf ein ungültiges oder fehlendes Token hin. Überprüfen Sie das Token in den Plugin-Einstellungen.
- Eine 429-Antwort weist darauf hin, dass der Import bereits läuft (Sperre ist aktiv). Warten Sie und versuchen Sie es erneut.
- Eine 500-Antwort weist auf eine Ausnahme während des Importlaufs hin. Überprüfen Sie das Plugin-Protokoll auf Details.
Wenn die REST-API nicht erreichbar ist, stellen Sie sicher, dass „Sprechende Permalinks“ aktiviert sind (Einstellungen → Permalinks → Speichern) und dass die WordPress-REST-API nicht durch ein Sicherheits-Plugin oder eine Serverkonfiguration blockiert wird.
Schritt 6: Aufzeichnung des externen Cron-Pings überprüfen
Wenn Sie einen Server-Cron-Job verwenden, der wp-cron.php direkt aufruft, können Sie ?as24ci_cron=1 an die URL anhängen, um den Ping aufzuzeichnen:
https://your-site.example.com/wp-cron.php?doing_wp_cron&as24ci_cron=1
Das Plugin zeichnet den Zeitstempel dieses Pings auf und zeigt ihn auf dem Tab „System & Hilfe“ als Zeitpunkt der letzten externen Cron-Aktivität an.
Schritt 7: Auf eine veraltete Importsperre prüfen
Wenn ein vorheriger Importlauf unterbrochen wurde, ohne seine Sperre freizugeben, werden nachfolgende Läufe bis zu 40 Minuten lang übersprungen. Das Protokoll enthält dann:
Import runner (wp-cron): already in progress, skipping.
Wenn die Sperre tatsächlich veraltet ist (der ursprüngliche Lauf ist nicht mehr aktiv), warten Sie, bis die 40-minütige TTL abläuft. Die Sperre wird automatisch gelöscht, wenn sie älter als 40 Minuten ist, sobald der nächste Lauf versucht zu starten.
Um die Sperre sofort aufzuheben:
- Löschen Sie den WordPress-Transient
as24ci_cron_import_runningmithilfe eines Transient-Management-Plugins oder über WP-CLI:
wp transient delete as24ci_cron_import_running
Schritt 8: Fehler beim Bild-Warteschlangen-Worker untersuchen
Wenn Bilder nach dem Import nicht verarbeitet werden:
- Überprüfen Sie das Plugin-Protokoll auf Einträge, die
Image queue workerenthalten. - Bestätigen Sie, dass der Hook
as24ci_image_queue_processin der WP-Cron-Ereignisliste vorhanden ist. - Wenn die Bild-Warteschlangensperre (
as24ci_image_queue_running) veraltet ist, löschen Sie diese:
wp transient delete as24ci_image_queue_running
Die Bild-Warteschlangensperre hat eine TTL von 10 Minuten und wird ebenfalls automatisch gelöscht, wenn sie veraltet ist.
- Überprüfen Sie die Statistiken unter Letzter Lauf der Bild-Warteschlange auf dem Tab „System & Hilfe“ auf die Anzahl der verarbeiteten, fehlgeschlagenen und verbleibenden Elemente.
Konfigurationsreferenz
| Einstellung | Ort | Beschreibung |
|---|---|---|
| Automatischen Import aktivieren | Import & Limits → Automatisierung | Hauptschalter für die WP-Cron-Automatisierung. Standard: deaktiviert. |
| Zeitplan | Import & Limits → Automatisierung | Import-Häufigkeit. Standard: stündlich. |
| Startzeit | Import & Limits → Automatisierung | Für tägliche / zweimal tägliche Zeitpläne. Standard: 06:00 (Website-Zeitzone). |
| Benutzerdefiniertes Intervall (Minuten) | Import & Limits → Automatisierung | Für benutzerdefinierten Zeitplan. Minimum: 15 Minuten. Standard: 30 Minuten. |
| Cron-Modus | Import & Limits | Steuert, welcher Triggertyp verwendet wird (wp-cron oder server-cron). |
| Cron-Token | Import & Limits | Geheimes Token für den REST-Endpunkt. Automatisch generiert. Kann neu generiert werden. |
| Max. Fahrzeuge pro Durchlauf | Import & Limits | Begrenzt die pro automatischem Durchlauf verarbeiteten Fahrzeuge. 0 = unbegrenzt. |
| Bild-Warteschlangen-Modus | Import & Limits | Zusätzliche Fahrzeugbilder für die Hintergrundverarbeitung in die Warteschlange einreihen. Standard: aktiviert. |
Betriebshinweise
- WP-Cron-Ereignisse erfordern Seitenaufrufe, um ausgelöst zu werden. Auf Staging- oder Entwicklungsumgebungen ohne regelmäßige Besucher läuft WP-Cron nicht zuverlässig. Verwenden Sie stattdessen den REST-Endpunkt mit einem echten Server-Cron-Job.
- Der Import-Runner versucht vor der Ausführung, ein PHP-Ausführungszeitlimit von 300 Sekunden festzulegen. Auf Hostings, die
set_time_limiteinschränken, gelingt dies möglicherweise nicht. Das Protokoll zeichnet in diesem Fall eine Warnung auf. Sehr große Kataloge können auf restriktivem Hosting ein Zeitlimit überschreiten. - Die Sperr-TTL für den Hauptimport beträgt 40 Minuten (2400 Sekunden). Die Sperre für den Bild-Warteschlangen-Worker beträgt 10 Minuten (600 Sekunden).
- Das Cron-Token wird im Klartext in den WordPress-Optionen gespeichert. Behandeln Sie es vertraulich. Teilen Sie es nicht in öffentlichen Foren und übertragen Sie es nicht in die Versionskontrolle.
- Die Bild-Warteschlange kann bis zu 20.000 Elemente aufnehmen, bevor eine Warnung protokolliert und ein Deduplizierungsdurchlauf gestartet wird.
- Das Ausführen des Imports über die Admin-Schaltfläche Jetzt ausführen verwendet denselben gemeinsamen Runner wie WP-Cron und der REST-Endpunkt. Er unterliegt derselben Sperre und wird blockiert, wenn bereits ein Import läuft.
Fehlerbehebung
| Symptom | Wahrscheinliche Ursache | Prüfung |
|---|---|---|
| Importe laufen nicht automatisch | Automatischer Import deaktiviert | Automatisierung in den Einstellungen für Import & Limits aktivieren |
as24ci_scheduled_import nicht in Cron-Liste | Ereignis wurde nach Einstellungsänderung aus dem Zeitplan entfernt | Automatisierungseinstellungen erneut speichern, um neu zu planen |
DISABLE_WP_CRON ist gesetzt | WP-Cron ist global deaktiviert | Stattdessen Server-Cron oder REST-Endpunkt verwenden |
| Import wird ausgelöst, aber „bereits aktiv“ im Protokoll | Veraltete Importsperre | 40 Minuten warten oder den Transient as24ci_cron_import_running löschen |
| REST-Endpunkt gibt HTTP 403 zurück | Token ist falsch, fehlt oder ist nicht konfiguriert | Token in den Einstellungen für Import & Limits überprüfen |
| REST-Endpunkt gibt HTTP 429 zurück | Importsperre ist aktiv | Warten und erneut versuchen; falls dauerhaft, den Sperr-Transient löschen |
| REST-Endpunkt gibt HTTP 500 zurück | Ausnahme während des Imports | Protokoll auf Details überprüfen |
| REST-API nicht erreichbar | Permalinks nicht gesetzt oder REST-API blockiert | Permalinks neu generieren; Einstellungen des Sicherheits-Plugins prüfen |
| Bild-Warteschlange verarbeitet nicht | WP-Cron kann nicht ausgelöst werden oder Bild-Warteschlangensperre ist veraltet | WP-Cron überprüfen; Transient as24ci_image_queue_running löschen, falls veraltet |
| Letzte externe Cron-Zeit aktualisiert sich nicht | Server-Cron ruft den Endpunkt nicht auf oder ?as24ci_cron=1 ist nicht angehängt | Befehl und URL des Cron-Jobs überprüfen |
| Import überschreitet Zeitlimit bei großem Katalog | PHP-Ausführungszeit zu kurz | Server-Cron verwenden; Hoster kontaktieren, um die maximale PHP-Ausführungszeit zu erhöhen |