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 Produktivbetrieb pflegen, manuell verarbeiten oder leeren.
Wann dieses Dokument zu verwenden ist
Lesen Sie dieses Dokument, wenn Sie 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 großen 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 stapelweise zu verarbeiten.
- Läuft der Worker wiederholt und verarbeitet 30 Bilder pro Stapel, 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 Importer-Tab ausgelöst werden (nicht über Cron oder REST), ist der Warteschlangenmodus standardmäßig deaktiviert und alle Bilder werden sofort während des Imports heruntergeladen.
Funktionsweise des Bilderschlangen-Workers
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 Stapeln von 30 Bildern und prüft nach jedem Stapel, ob das Zeitbudget (die Sperren-TTL minus 60 Sekunden, ca. 540 Sekunden) erreicht ist.
- Schreibt die verbleibende Warteschlange nach jedem Stapel zurück in die Datenbank.
- Erfasst Laufstatistiken (
processed,failed,remaining,timestamp) in der Optionas24ci_image_queue_last_run. - Plant, falls nach Ablauf des Zeitbudgets noch Elemente vorhanden sind, 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 schließt den Bild-Hash ab, sodass 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 wird geprüft, 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 Sofort- als auch für Warteschlangen-Importe.
Das bedeutet, dass das erneute Ausführen eines Imports oder das erneute Verarbeiten der Warteschlange keine doppelten Attachments für bereits erfolgreich importierte Bilder erzeugt.
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 als Warnung 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
System & Hilfe-Tab
- Ö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 - Läuft (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 System & Hilfe-Tab zeigt ein Warnsymbol an, wenn die Warteschlangengröße 1.000 Elemente überschreitet, was darauf hindeutet, dass die Bildverarbeitung im Rückstand ist.
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— noch in der Warteschlange wartende Elementetimestamp— Unix-Zeitstempel des letzten Laufs
Diese Werte werden im System & Hilfe-Tab angezeigt und können zur Beurteilung des Warteschlangendurchsatzes herangezogen werden.
Import & Limits-Tab
Der Tab 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 eine große Anzahl falscher 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 System & Hilfe-Tabs 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öße der Warteschlange).
- Aktualisieren Sie den System & Hilfe-Tab, um zu überprüfen, ob sich die Warteschlange verkleinert.
- Wenn der Worker läuft, die Warteschlange sich jedoch nicht verkleinert (z. B. weil alle Bilder fehlschlagen), überprüfen Sie das Protokoll auf Einträge zu
[ERROR]und[WARNING]im Zusammenhang mitImage queue workeroderImage download failed.
Schritt-für-Schritt: Bilderschlange leeren
Verwenden Sie dieses Verfahren, wenn Sie alle ausstehenden Bild-Downloads verwerfen 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ößenbeschränkungen
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) | Heruntergeladene Bilder vor dem Hinzufügen zur Mediathek in WebP konvertieren |
WebP-Qualität (as24ci_webp_quality) | 80 | Konvertierungsqualität, 1–100 |
| Stapelgröße der Bilderschlange | 30 | Im Code fest vorgegeben (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öße, ab der im System & Hilfe-Tab ein Warnsymbol angezeigt wird |
Betriebshinweise
- Der Bilderschlangen-Modus wird nur bei Importen angewendet, die durch WP-Cron oder den REST-Cron-Endpunkt ausgelöst werden. Manuelle Importe über den Importer-Tab laden immer alle Bilder sofort herunter (es sei denn, das Limit für die maximale Bilderanzahl greift).
- Die Bilderschlange bleibt über Importläufe hinweg bestehen. Wenn der Worker die Verarbeitung eines vorherigen Stapels noch nicht abgeschlossen hat, wenn ein neuer Import läuft, werden die neuen Bild-URLs an die vorhandene 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, einschließlich der Fahrzeug-Post-ID, der Listing ID, der Bild-URL und eines Bild-Hashes. Dies ermöglicht es dem Worker, Bild-Hashes korrekt abzuschließen, nachdem alle Bilder für ein Fahrzeug verarbeitet wurden.
- Auf Websites mit großen Katalogen (Hunderte von Fahrzeugen mit jeweils vielen Bildern) kann die Bilderschlange nach dem ersten Import auf mehrere tausend Elemente anwachsen. Dies ist ein normales Verhalten. Die Warteschlange wird bei nachfolgenden Worker-Läufen stetig abnehmen, solange WP-Cron (oder der Cron-Hook des Bilderschlangen-Workers) ausgeführt wird.
- Wenn der Speicherplatz im Uploads-Verzeichnis knapp ist, schlagen Bild-Downloads fehl. Der System & Hilfe-Tab zeigt den verfügbaren Speicherplatz an. Geben Sie Speicherplatz frei, bevor Sie einen großen Bildimport durchführen.
Fehlerbehebung
| Symptom | Wahrscheinliche Ursache | Prüfung |
|---|---|---|
| Fahrzeugbilder werden nach dem Import nicht angezeigt | Warteschlangenmodus ist aktiv und Worker ist noch nicht gelaufen | System & Hilfe-Tab auf Status der Bilderschlange prüfen; auf „Bilderschlange jetzt ausführen“ klicken |
| Größe der Bilderschlange nimmt nicht ab | Worker-Cron läuft nicht oder alle Bild-Downloads schlagen fehl | Status der Hintergrund-Tasks prüfen; Protokoll auf Bild-Download-Fehler überprüfen |
Image download failed-Fehler im Protokoll | Quellbilder nicht verfügbar oder Download-Timeout | Überprüfen, ob das Angebot in AutoScout24 noch aktiv ist; ausgehende Konnektivität des Servers prüfen |
| WebP-Konvertierungsfehler im Protokoll | GD oder Imagick nicht verfügbar oder falsch konfiguriert | PHP-Erweiterungsstatus im System & Hilfe-Tab prüfen; WebP-Konvertierung deaktivieren, falls nicht benötigt |
| Symbol „Sperre blockiert“ für Image Processor | Worker hat seine Sperre nicht sauber freigegeben | Sperre wird nach 10 Minuten automatisch gelöscht; auf „Bilderschlange jetzt ausführen“ klicken, um zurückzusetzen |
| Warteschlange wächst unbegrenzt | Viele Importe mit großen Bildersätzen; Worker kommt nicht hinterher | Erwägen Sie, die maximale Anzahl an Bildern pro Fahrzeug zu reduzieren; Zuverlässigkeit von WP-Cron prüfen |