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:

  1. 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.
  2. Server-Cron-Modus: Ein echter Cron-Job des Betriebssystems ruft in einem festen Intervall entweder wp-cron.php oder 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üsselIntervall
hourlyAlle 60 Minuten
as24ci_every_6_hoursAlle 6 Stunden
twicedailyZweimal täglich
dailyEinmal täglich
as24ci_customBenutzerdefiniertes 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 & LimitsAutomatisierung).
  • 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

  1. Gehen Sie im Plugin auf den Tab Import & LimitsAutomatisierung.
  2. Bestätigen Sie, dass Automatischen Import aktivieren eingeschaltet ist.
  3. Bestätigen Sie, dass der gewünschte Zeitplan ausgewählt ist.
  4. Speichern Sie die Einstellungen, falls Änderungen vorgenommen wurden.

Schritt 2: Letzte Laufzeit überprüfen

  1. Überprüfen Sie auf dem Admin-Dashboard des Plugins oder auf dem Tab „System & Hilfe“ den Zeitstempel für Letzter Importlauf.
  2. 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:

  1. Verwenden Sie ein WordPress-Plugin, das geplante Ereignisse auflisten kann (z. B. WP Crontrol), oder WP-CLI:
   wp cron event list
  1. Suchen Sie nach dem Hook as24ci_scheduled_import. Bestätigen Sie, dass er vorhanden ist und seine nächste Laufzeit in der Zukunft liegt.
  2. 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:

  1. Überprüfen Sie die Datei wp-config.php auf 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.

  1. 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.
  2. 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:

  1. Rufen Sie das Cron-Token im Bereich Import & LimitsCron-Token ab.
  2. Senden Sie eine Testanfrage von Ihrem Server:
   curl -H "Authorization: Bearer YOUR_TOKEN" \
        "https://your-site.example.com/wp-json/as24ci/v1/cron-import"
  1. Eine erfolgreiche Antwort gibt HTTP 200 mit "success": true und den Import-Zahlen zurück.
  2. Eine 403-Antwort weist auf ein ungültiges oder fehlendes Token hin. Überprüfen Sie das Token in den Plugin-Einstellungen.
  3. Eine 429-Antwort weist darauf hin, dass der Import bereits läuft (Sperre ist aktiv). Warten Sie und versuchen Sie es erneut.
  4. 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_running mithilfe 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:

  1. Überprüfen Sie das Plugin-Protokoll auf Einträge, die Image queue worker enthalten.
  2. Bestätigen Sie, dass der Hook as24ci_image_queue_process in der WP-Cron-Ereignisliste vorhanden ist.
  3. 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.

  1. Ü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

EinstellungOrtBeschreibung
Automatischen Import aktivierenImport & Limits → AutomatisierungHauptschalter für die WP-Cron-Automatisierung. Standard: deaktiviert.
ZeitplanImport & Limits → AutomatisierungImport-Häufigkeit. Standard: stündlich.
StartzeitImport & Limits → AutomatisierungFür tägliche / zweimal tägliche Zeitpläne. Standard: 06:00 (Website-Zeitzone).
Benutzerdefiniertes Intervall (Minuten)Import & Limits → AutomatisierungFür benutzerdefinierten Zeitplan. Minimum: 15 Minuten. Standard: 30 Minuten.
Cron-ModusImport & LimitsSteuert, welcher Triggertyp verwendet wird (wp-cron oder server-cron).
Cron-TokenImport & LimitsGeheimes Token für den REST-Endpunkt. Automatisch generiert. Kann neu generiert werden.
Max. Fahrzeuge pro DurchlaufImport & LimitsBegrenzt die pro automatischem Durchlauf verarbeiteten Fahrzeuge. 0 = unbegrenzt.
Bild-Warteschlangen-ModusImport & LimitsZusä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_limit einschrä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

SymptomWahrscheinliche UrsachePrüfung
Importe laufen nicht automatischAutomatischer Import deaktiviertAutomatisierung in den Einstellungen für Import & Limits aktivieren
as24ci_scheduled_import nicht in Cron-ListeEreignis wurde nach Einstellungsänderung aus dem Zeitplan entferntAutomatisierungseinstellungen erneut speichern, um neu zu planen
DISABLE_WP_CRON ist gesetztWP-Cron ist global deaktiviertStattdessen Server-Cron oder REST-Endpunkt verwenden
Import wird ausgelöst, aber „bereits aktiv“ im ProtokollVeraltete Importsperre40 Minuten warten oder den Transient as24ci_cron_import_running löschen
REST-Endpunkt gibt HTTP 403 zurückToken ist falsch, fehlt oder ist nicht konfiguriertToken in den Einstellungen für Import & Limits überprüfen
REST-Endpunkt gibt HTTP 429 zurückImportsperre ist aktivWarten und erneut versuchen; falls dauerhaft, den Sperr-Transient löschen
REST-Endpunkt gibt HTTP 500 zurückAusnahme während des ImportsProtokoll auf Details überprüfen
REST-API nicht erreichbarPermalinks nicht gesetzt oder REST-API blockiertPermalinks neu generieren; Einstellungen des Sicherheits-Plugins prüfen
Bild-Warteschlange verarbeitet nichtWP-Cron kann nicht ausgelöst werden oder Bild-Warteschlangensperre ist veraltetWP-Cron überprüfen; Transient as24ci_image_queue_running löschen, falls veraltet
Letzte externe Cron-Zeit aktualisiert sich nichtServer-Cron ruft den Endpunkt nicht auf oder ?as24ci_cron=1 ist nicht angehängtBefehl und URL des Cron-Jobs überprüfen
Import überschreitet Zeitlimit bei großem KatalogPHP-Ausführungszeit zu kurzServer-Cron verwenden; Hoster kontaktieren, um die maximale PHP-Ausführungszeit zu erhöhen

Zugehörige Dokumente