Dokumentation · Betrieb und Wartung
Wartung der Bilderschlange
Dieses Dokument erklärt, wie die asynchrone Bilderschlange des Plugins funktioniert, wie Sie ihren Fortschritt überwachen und wie Sie die Warteschlange im Live-Betrieb warten, manuell verarbeiten oder leeren.
Wann Sie dieses Dokument verwenden sollten
Lesen Sie dieses Dokument, wenn Sie ein Website-Administrator sind und verstehen müssen, warum Fahrzeugbilder nach einem Import noch nicht angezeigt werden, warum die Bilderschlange wächst oder wie Sie Bild-Downloads auf Websites mit grossen Katalogen oder begrenzten Serverressourcen verwalten.
Übersicht
Wenn der Bilderschlangen-Modus aktiviert ist (Standardeinstellung für geplante und über REST ausgelöste Importe), lädt das Plugin während des Hauptimportlaufs nicht alle Fahrzeugbilder herunter. Stattdessen:
- Wird nur das erste Bild jedes Fahrzeugs sofort während des Imports heruntergeladen.
- Werden die verbleibenden Bild-URLs in einer persistenten Warteschlange in der WordPress-Optionstabelle (
as24ci_image_queue) gespeichert. - Wird nach jedem Importlauf ein separater Bilderschlangen-Worker als einzelnes WP-Cron-Ereignis geplant, um die in der Warteschlange befindlichen Bilder in Batches zu verarbeiten.
- Läuft der Worker wiederholt und verarbeitet 30 Bilder pro Batch, bis die Warteschlange leer ist oder das Zeitbudget erschöpft ist.
Dieser Ansatz hält jeden Importlauf kurz und vorhersehbar, selbst bei Katalogen mit vielen Bildern pro Fahrzeug.
Bei manuellen Importen, die über den Reiter „Importer“ (nicht über Cron oder REST) ausgelöst werden, ist der Warteschlangenmodus standardmässig deaktiviert und alle Bilder werden sofort während des Imports heruntergeladen.
Wie der Bilderschlangen-Worker arbeitet
Der Bilderschlangen-Worker:
- Erwirbt eine eigene temporäre Sperre (
as24ci_image_queue_running, TTL 10 Minuten), um überschneidende Worker zu verhindern. - Liest die aktuelle Warteschlange aus der Option
as24ci_image_queueaus. - Verarbeitet Elemente in Batches von 30 Bildern und prüft nach jedem Batch, ob das Zeitbudget (die Sperren-TTL minus 60 Sekunden, ca. 540 Sekunden) erreicht ist.
- Schreibt die verbleibende Warteschlange nach jedem Batch zurück in die Datenbank.
- Erfasst Laufstatistiken (
processed,failed,remaining,timestamp) in der Optionas24ci_image_queue_last_run. - Wenn nach Ablauf des Zeitbudgets noch Elemente vorhanden sind, plant er sofort ein weiteres einzelnes WP-Cron-Ereignis, damit die Verarbeitung beim nächsten verfügbaren Request fortgesetzt wird.
- Gibt die Sperre nach Abschluss frei.
Nachdem alle in der Warteschlange befindlichen Elemente für einen Fahrzeug-Post verarbeitet wurden, baut der Worker die Post-Meta _as24ci_image_ids aus den tatsächlichen Attachment-IDs in der Datenbank neu auf und schliesst den Bild-Hash ab, damit der nächste Importlauf zukünftige Änderungen korrekt erkennen kann.
Bild-Deduplizierung
Der Bild-Importer dedupliziert Bilder anhand der Quell-URL. Vor dem Herunterladen eines Bildes prüft er, ob bereits ein Attachment mit derselben Post-Meta _as24ci_source_url existiert. Wenn eine Übereinstimmung gefunden wird, wird das vorhandene Attachment wiederverwendet, anstatt es erneut herunterzuladen. Dies gilt sowohl für sofortige Importe als auch für Importe im Warteschlangenmodus.
Dies bedeutet, dass das erneute Ausführen eines Imports oder das erneute Verarbeiten der Warteschlange keine doppelten Attachments für Bilder erstellt, die bereits erfolgreich importiert wurden.
WebP-Konvertierung
Wenn die Option In WebP konvertieren aktiviert ist, wird jedes heruntergeladene Bild in das WebP-Format konvertiert, bevor es zur Mediathek hinzugefügt wird. Das Plugin versucht es zuerst mit GD, dann mit Imagick als Fallback. Wenn keines von beiden verfügbar ist oder die Konvertierung fehlschlägt, wird das ursprüngliche Bildformat verwendet. Konvertierungsergebnisse werden bei Fehlern auf Warnungsstufe protokolliert.
Die WebP-Qualität ist konfigurierbar (1–100, Standard 80). Der Qualitätswert kann auf Code-Ebene auch über den Filter as24ci_webp_quality überschrieben werden.
Überwachung der Bilderschlange
Reiter „System & Hilfe“
- Öffnen Sie ADP Car Market Hub → System & Hilfe.
- Suchen Sie in der Tabelle Hintergrund-Tasks die Zeile Image Processor (Hook:
as24ci_image_queue_process). - Die Spalte Nächster Lauf zeigt an, wann der nächste Worker-Aufruf geplant ist.
- Die Spalte Status zeigt: - Geplant (grün) — ein Worker-Ereignis ist in der Warteschlange - Laufend (gelb) — der Worker ist derzeit aktiv - Sperre blockiert (rot) — eine veraltete Sperre wurde erkannt; sie wird beim nächsten Laufversuch automatisch gelöscht - Nicht geplant (gelb) — derzeit ist kein Worker in der Warteschlange (erwartet, wenn die Warteschlange leer ist)
- Der Reiter „System & Hilfe“ zeigt ein Warnsymbol an, wenn die Warteschlangengrösse 1'000 Elemente überschreitet, was darauf hindeutet, dass die Bildverarbeitung in Verzug gerät.
Statistiken zum letzten Lauf der Bilderschlange
Das Plugin speichert die Ergebnisse des jüngsten Worker-Laufs in der Option as24ci_image_queue_last_run. Diese Statistiken umfassen:
processed— im letzten Lauf erfolgreich heruntergeladene Bilderfailed— Bilder, die nicht heruntergeladen werden konntenremaining— Elemente, die noch in der Warteschlange wartentimestamp— Unix-Zeitstempel des letzten Laufs
Diese Werte werden im Reiter „System & Hilfe“ angezeigt und können zur Beurteilung des Warteschlangendurchsatzes verwendet werden.
Reiter „Import & Limits“
Der Reiter Automatisierung bietet manuelle Steuerungsaktionen für die Bilderschlange:
- Bilderschlange jetzt ausführen — löst den Worker sofort über einen AJAX-Request aus. Nützlich, wenn Sie die Bildverarbeitung erzwingen möchten, ohne auf das nächste geplante Ereignis zu warten.
- Bilderschlange leeren — verwirft alle ausstehenden Elemente in der Warteschlange. Verwenden Sie dies, wenn Sie die Bildverarbeitung stoppen möchten, beispielsweise wenn ein grosser Batch fehlerhafter Bilder in die Warteschlange eingereiht wurde. Bereits heruntergeladene Bilder werden dadurch nicht gelöscht.
Schritt-für-Schritt: Verarbeitung einer blockierten Bilderschlange
- Öffnen Sie ADP Car Market Hub → System & Hilfe.
- Überprüfen Sie die Tabelle „Hintergrund-Tasks“ auf die Zeile „Image Processor“. Wenn der Status Nicht geplant ist, die Warteschlange aber nicht leer ist (das Warnsymbol ist sichtbar oder die Statistiken des letzten Laufs zeigen eine verbleibende Anzahl ungleich Null), wurde das Cron-Ereignis des Workers nicht neu geplant.
- Klicken Sie in der Aktionsleiste des Reiters „System & Hilfe“ auf Bilderschlange jetzt ausführen, um sofort einen Worker zu starten.
- Warten Sie, bis der Lauf abgeschlossen ist (normalerweise einige Sekunden bis einige Minuten, je nach Grösse der Warteschlange).
- Laden Sie den Reiter „System & Hilfe“ neu, um zu überprüfen, ob die Warteschlange kleiner wird.
- Wenn der Worker läuft, die Warteschlange aber nicht kleiner wird (z. B. weil alle Bilder fehlschlagen), überprüfen Sie das Log auf Einträge von
[ERROR]und[WARNING]im Zusammenhang mitImage queue workeroderImage download failed.
Schritt-für-Schritt: Leeren der Bilderschlange
Verwenden Sie dieses Verfahren, wenn Sie alle ausstehenden Bild-Downloads abbrechen möchten (z. B. nach dem Entfernen einer Seller ID oder nach dem Massenlöschen von Fahrzeugen).
- Öffnen Sie ADP Car Market Hub → System & Hilfe oder Import & Limits.
- Klicken Sie auf Bilderschlange leeren.
- Bestätigen Sie die Aktion, wenn Sie dazu aufgefordert werden.
- Die Warteschlangen-Option wird gelöscht und es finden keine weiteren Hintergrund-Bild-Downloads für die verworfenen Elemente statt.
- Fahrzeuge, deren verbleibende Bilder gelöscht wurden, verfügen bis zum nächsten vollständigen Import nur über das erste Bild (das während des Importlaufs heruntergeladen wurde).
Warteschlangen-Grössenlimits
Das Plugin erzwingt ein hartes Limit von 20'000 Elementen in der Bilderschlange. Wenn die Warteschlange über dieses Limit hinauswächst, wird eine Warnung protokolliert und ein Deduplizierungsdurchlauf gestartet, um doppelte Einträge zusammenzuführen. Überprüfen Sie dieses Verhalten in der aktuellen Plugin-Version vor der Veröffentlichung.
Konfigurationsreferenz
| Einstellung | Standard | Zweck |
|---|---|---|
Bilderschlangen-Modus (as24ci_cron_image_queue) | Ein (1) | Wenn aktiviert, wird bei Cron-/REST-Läufen nur das erste Bild sofort importiert; verbleibende URLs werden in die Warteschlange eingereiht |
Max. Bilder pro Fahrzeug (as24ci_max_images) | 0 (unbegrenzt) | Begrenzt die Gesamtzahl der pro Fahrzeug importierten Bilder unabhängig vom Warteschlangenmodus |
In WebP konvertieren (as24ci_convert_to_webp) | Aus (0) | Konvertiert heruntergeladene Bilder in WebP, bevor sie zur Mediathek hinzugefügt werden |
WebP-Qualität (as24ci_webp_quality) | 80 | Konvertierungsqualität, 1–100 |
| Batch-Grösse der Bilderschlange | 30 | Im Code festgeschrieben (Scheduler::IMAGEQUEUEBATCH_SIZE); in der Benutzeroberfläche nicht konfigurierbar |
| Sperren-TTL des Bilderschlangen-Workers | 600 Sekunden (10 Min.) | Wie lange die Worker-Sperre gehalten wird, bevor sie als veraltet gilt |
| Warnschwelle für Bilderschlange | 1'000 Elemente | Warteschlangengrösse, ab der im Reiter „System & Hilfe“ ein Warnsymbol angezeigt wird |
Betriebliche Hinweise
- Der Bilderschlangen-Modus wird nur bei Importen angewendet, die durch WP-Cron oder den REST-Cron-Endpunkt ausgelöst werden. Manuelle Importe über den Reiter „Importer“ laden immer alle Bilder sofort herunter (es sei denn, das Limit für maximale Bilder greift).
- Die Bilderschlange bleibt über Importläufe hinweg bestehen. Wenn der Worker die Verarbeitung eines vorherigen Batches noch nicht abgeschlossen hat, wenn ein neuer Import läuft, werden die neuen Bild-URLs an die bestehende Warteschlange angehängt.
- Wenn ein Fahrzeug-Post gelöscht wird, nachdem seine Bild-URLs in die Warteschlange eingereiht wurden, aber bevor der Worker sie verarbeitet, überspringt der Worker Elemente, deren Post nicht mehr existiert, geräuschlos.
- Die Bilderschlange speichert Metadaten pro Element, einschliesslich der Fahrzeug-Post-ID, der Listing ID, der Bild-URL und eines Bild-Hashes. Dies ermöglicht es dem Worker, Bild-Hashes korrekt abzuschliessen, nachdem alle Bilder für ein Fahrzeug verarbeitet wurden.
- Auf Websites mit grossen Katalogen (Hunderte von Fahrzeugen mit jeweils vielen Bildern) kann die Bilderschlange nach dem ersten Import auf mehrere tausend Elemente anwachsen. Dies ist ein erwartetes Verhalten. Die Warteschlange wird bei nachfolgenden Worker-Läufen stetig abnehmen, solange WP-Cron (oder der Cron-Hook des Bilderschlangen-Workers) läuft.
- Wenn der Speicherplatz im Uploads-Verzeichnis knapp ist, schlagen Bild-Downloads fehl. Der Reiter „System & Hilfe“ zeigt den verfügbaren Speicherplatz an. Geben Sie Speicherplatz frei, bevor Sie einen grossen Bildimport durchführen.
Fehlerbehebung
| Symptom | Wahrscheinliche Ursache | Prüfung |
|---|---|---|
| Fahrzeugbilder erscheinen nach dem Import nicht | Warteschlangenmodus ist aktiv und Worker ist noch nicht gelaufen | Überprüfen Sie den Reiter „System & Hilfe“ auf den Status der Bilderschlange; klicken Sie auf „Bilderschlange jetzt ausführen“ |
| Grösse der Bilderschlange nimmt nicht ab | Worker-Cron läuft nicht oder alle Bild-Downloads schlagen fehl | Überprüfen Sie den Status der Hintergrund-Tasks; überprüfen Sie das Log auf Bild-Download-Fehler |
Image download failed-Fehler im Log | Quellbilder nicht verfügbar oder Download-Timeout | Überprüfen Sie, ob das Listing in AutoScout24 noch aktiv ist; prüfen Sie die ausgehende Konnektivität des Servers |
| WebP-Konvertierungsfehler im Log | GD oder Imagick nicht verfügbar oder falsch konfiguriert | Überprüfen Sie den PHP-Erweiterungsstatus im Reiter „System & Hilfe“; deaktivieren Sie die WebP-Konvertierung, falls nicht benötigt |
| Symbol „Sperre blockiert“ für Image Processor | Worker hat seine Sperre nicht sauber freigegeben | Die Sperre wird nach 10 Minuten automatisch gelöscht; klicken Sie auf „Bilderschlange jetzt ausführen“, um sie zurückzusetzen |
| Warteschlange wächst unbegrenzt | Viele Importe mit grossen Bildmengen; Worker kommt nicht hinterher | Erwägen Sie, die maximalen Bilder pro Fahrzeug zu reduzieren; stellen Sie sicher, dass WP-Cron zuverlässig funktioniert |