Documentatie · Beheer en onderhoud

Onderhoud van de afbeeldingenwachtrij

Dit document legt uit hoe de asynchrone afbeeldingenwachtrij van de plugin werkt, hoe u de voortgang bewaakt en hoe u de wachtrij in productie onderhoudt, handmatig verwerkt of wist.

Wanneer u dit document moet gebruiken

Lees dit document als u een sitebeheerder bent en wilt begrijpen waarom voertuigafbeeldingen nog niet verschijnen na een import, waarom de afbeeldingenwachtrij groeit, of hoe u het downloaden van afbeeldingen beheert op sites met grote catalogi of beperkte serverbronnen.

Overzicht

Wanneer de Afbeeldingenwachtrij-modus is ingeschakeld (de standaardinstelling voor geplande en via REST geactiveerde imports), downloadt de plugin niet alle voertuigafbeeldingen tijdens de hoofdimport. In plaats daarvan:

  1. Wordt alleen de eerste afbeelding van elk voertuig direct gedownload tijdens de import.
  2. Worden de resterende afbeeldings-URL's opgeslagen in een permanente wachtrij in de WordPress optietabel (as24ci_image_queue).
  3. Wordt na elke importtaak een afzonderlijke afbeeldingenwachtrij-worker gepland als een eenmalige WP-Cron-gebeurtenis om de in de wachtrij geplaatste afbeeldingen in batches te verwerken.
  4. Wordt de worker herhaaldelijk uitgevoerd, waarbij 30 afbeeldingen per batch worden verwerkt, totdat de wachtrij leeg is of het tijdsbudget is overschreden.

Deze aanpak houdt elke importtaak kort en voorspelbaar, zelfs voor catalogi met veel afbeeldingen per voertuig.

Voor handmatige imports die worden gestart vanaf het tabblad Importer (niet via cron of REST), is de wachtrijmodus standaard uitgeschakeld en worden alle afbeeldingen direct tijdens de import gedownload.

Hoe de afbeeldingenwachtrij-worker werkt

De afbeeldingenwachtrij-worker:

  1. Verkrijgt zijn eigen transient lock (as24ci_image_queue_running, TTL 10 minuten) om overlappende workers te voorkomen.
  2. Leest de huidige wachtrij uit de as24ci_image_queue optie.
  3. Verwerkt items in batches van 30 afbeeldingen, waarbij na elke batch wordt gecontroleerd of het tijdsbudget (de lock TTL minus 60 seconden, ongeveer 540 seconden) is bereikt.
  4. Schrijft de resterende wachtrij na elke batch terug naar de database.
  5. Registreert uitvoeringsstatistieken (processed, failed, remaining, timestamp) in de as24ci_image_queue_last_run optie.
  6. Als er items overblijven nadat het tijdsbudget is overschreden, wordt er onmiddellijk een nieuwe eenmalige WP-Cron-gebeurtenis gepland, zodat de verwerking doorgaat bij het eerstvolgende verzoek.
  7. Geeft de lock vrij wanneer hij klaar is.

Nadat alle in de wachtrij geplaatste items voor een voertuigbericht zijn verwerkt, bouwt de worker de _as24ci_image_ids post-meta opnieuw op op basis van de werkelijke attachment-ID's in de database en rondt hij de afbeeldingshash af, zodat de volgende importtaak toekomstige wijzigingen correct kan detecteren.

Ontdubbeling van afbeeldingen

De afbeeldingen-importer ontdubbelt afbeeldingen op basis van de bron-URL. Voordat een afbeelding wordt gedownload, controleert deze of er al een bijlage met dezelfde _as24ci_source_url post-meta bestaat. Als er een overeenkomst wordt gevonden, wordt de bestaande bijlage hergebruikt in plaats van opnieuw gedownload. Dit geldt voor zowel directe imports als imports in wachtrijmodus.

Dit betekent dat het opnieuw uitvoeren van een import of het opnieuw verwerken van de wachtrij geen dubbele bijlagen zal aanmaken voor afbeeldingen die al succesvol zijn geïmporteerd.

WebP-conversie

Als de optie Converteren naar WebP is ingeschakeld, wordt elke gedownloade afbeelding geconverteerd naar het WebP-formaat voordat deze aan de mediabibliotheek wordt toegevoegd. De plugin probeert eerst GD, met Imagick als fallback. Als geen van beide beschikbaar is of de conversie mislukt, wordt het originele afbeeldingsformaat gebruikt. Conversieresultaten worden op waarschuwingsniveau gelogd wanneer ze mislukken.

De WebP-kwaliteit is configureerbaar (1–100, standaard 80). De kwaliteitswaarde kan ook op codeniveau worden overschreven via het as24ci_webp_quality filter.

De afbeeldingenwachtrij bewaken

Tabblad System & Help

  1. Open ADP Car Market Hub → System & Help.
  2. Zoek in de tabel Background Tasks naar de rij Image Processor (hook: as24ci_image_queue_process).
  3. De kolom Next Run toont wanneer de volgende aanroep van de worker is gepland.
  4. De kolom Status toont: - Scheduled (groen) — er staat een worker-gebeurtenis in de wachtrij - Running (oranje) — de worker is momenteel actief - Lock stuck (rood) — er is een verouderde lock gedetecteerd; deze wordt automatisch gewist bij de volgende startpoging - Not scheduled (oranje) — er staat momenteel geen worker in de wachtrij (verwacht wanneer de wachtrij leeg is)
  5. Het tabblad System & Help toont een waarschuwingsbadge wanneer de wachtrij groter is dan 1.000 items, wat aangeeft dat de verwerking van afbeeldingen achterloopt.

Statistieken van de laatste run van de afbeeldingenwachtrij

De plugin slaat de resultaten van de meest recente worker-run op in de as24ci_image_queue_last_run optie. Deze statistieken omvatten:

  • processed — succesvol gedownloade afbeeldingen in de laatste run
  • failed — afbeeldingen die niet konden worden gedownload
  • remaining — items die nog in de wachtrij staan
  • timestamp — Unix-timestamp van de laatste run

Deze waarden worden weergegeven op het tabblad System & Help en kunnen worden gebruikt om de doorvoer van de wachtrij te beoordelen.

Tabblad Import & Limits

Het tabblad Automation biedt handmatige beheeracties voor de afbeeldingenwachtrij:

  • Run image queue now — start de worker onmiddellijk via een AJAX-verzoek. Handig wanneer u de verwerking van afbeeldingen wilt forceren zonder te wachten op de volgende geplande gebeurtenis.
  • Clear image queue — verwijdert alle openstaande items in de wachtrij. Gebruik dit wanneer u de verwerking van afbeeldingen wilt stoppen, bijvoorbeeld als er een grote batch onjuiste afbeeldingen in de wachtrij is geplaatst. Dit verwijdert geen afbeeldingen die al zijn gedownload.

Stappenplan: een vastgelopen afbeeldingenwachtrij verwerken

  1. Open ADP Car Market Hub → System & Help.
  2. Controleer de tabel Background Tasks voor de rij Image Processor. Als de status Not scheduled is maar de wachtrij is niet leeg (de waarschuwingsbadge is zichtbaar of de statistieken van de laatste run tonen een resterend aantal dat groter is dan nul), dan is de cron-gebeurtenis van de worker niet opnieuw gepland.
  3. Klik op Run Image Queue Now in de actiebalk van het tabblad System & Help om direct een worker te starten.
  4. Wacht tot de run is voltooid (meestal een paar seconden tot een paar minuten, afhankelijk van de grootte van de wachtrij).
  5. Vernieuw het tabblad System & Help om te controleren of de wachtrij afneemt.
  6. Als de worker draait maar de wachtrij niet afneemt (bijvoorbeeld omdat alle afbeeldingen mislukken), controleer dan het logboek op [ERROR] en [WARNING] vermeldingen die te maken hebben met Image queue worker of Image download failed.

Stappenplan: de afbeeldingenwachtrij wissen

Gebruik deze procedure wanneer u alle openstaande downloads van afbeeldingen wilt annuleren (bijvoorbeeld na het verwijderen van een Seller ID of na het bulksgewijs verwijderen van voertuigen).

  1. Open ADP Car Market Hub → System & Help of Import & Limits.
  2. Klik op Clear Image Queue.
  3. Bevestig de actie wanneer daarom wordt gevraagd.
  4. De wachtrij-optie wordt gewist en er zullen geen verdere achtergronddownloads van afbeeldingen plaatsvinden voor de verwijderde items.
  5. Voertuigen waarvan de resterende afbeeldingen zijn gewist, hebben alleen de eerste afbeelding (gedownload tijdens de importtaak) tot de volgende volledige import.

Limieten voor de wachtrijgrootte

De plugin hanteert een harde limiet van 20.000 items in de afbeeldingenwachtrij. Als de wachtrij groter wordt dan deze limiet, wordt er een waarschuwing gelogd en wordt er een ontdubbelingsronde uitgevoerd om dubbele vermeldingen samen te voegen. Controleer dit gedrag in de huidige plugin-versie voordat u publiceert.

Configuratiereferentie

InstellingStandaardDoel
Afbeeldingenwachtrij-modus (as24ci_cron_image_queue)Aan (1)Indien ingeschakeld, wordt alleen de eerste afbeelding direct geïmporteerd tijdens cron/REST-runs; resterende URL's worden in de wachtrij geplaatst
Max. afbeeldingen per voertuig (as24ci_max_images)0 (onbeperkt)Beperkt het totale aantal geïmporteerde afbeeldingen per voertuig, ongeacht de wachtrijmodus
Converteren naar WebP (as24ci_convert_to_webp)Uit (0)Converteer gedownloade afbeeldingen naar WebP voordat ze aan de mediabibliotheek worden toegevoegd
WebP-kwaliteit (as24ci_webp_quality)80Conversiekwaliteit, 1–100
Batchgrootte afbeeldingenwachtrij30Vastgelegd in de code (Scheduler::IMAGEQUEUEBATCH_SIZE); niet configureerbaar in de UI
Lock TTL afbeeldingenwachtrij-worker600 seconden (10 min)Hoe lang de lock van de worker wordt vastgehouden voordat deze als verouderd wordt beschouwd
Waarschuwingsdrempel afbeeldingenwachtrij1.000 itemsWachtrijgrootte waarna het tabblad System & Help een waarschuwingsbadge toont

Operationele opmerkingen

  • De afbeeldingenwachtrij-modus wordt alleen toegepast tijdens imports die worden geactiveerd door WP-Cron of het REST-cron-endpoint. Handmatige imports vanaf het tabblad Importer downloaden altijd direct alle afbeeldingen (tenzij de limiet voor het maximale aantal afbeeldingen van toepassing is).
  • De afbeeldingenwachtrij blijft behouden tussen verschillende importruns. Als de worker nog niet klaar is met het verwerken van een vorige batch wanneer een nieuwe import start, worden de nieuwe afbeeldings-URL's toegevoegd aan de bestaande wachtrij.
  • Als een voertuigbericht wordt verwijderd nadat de afbeeldings-URL's in de wachtrij zijn geplaatst, maar voordat de worker ze verwerkt, slaat de worker geruisloos de items over waarvan het bericht niet meer bestaat.
  • De afbeeldingenwachtrij slaat metadata per item op, waaronder het ID van het voertuigbericht, de Listing ID, de afbeeldings-URL en een afbeeldingshash. Hiermee kan de worker de afbeeldingshashes correct afronden nadat alle afbeeldingen voor een voertuig zijn verwerkt.
  • Op sites met grote catalogi (honderden voertuigen met elk veel afbeeldingen) kan de afbeeldingenwachtrij na de eerste import groeien tot enkele duizenden items. Dit is verwacht gedrag. De wachtrij zal gestaag afnemen tijdens opeenvolgende worker-runs, zolang WP-Cron (of de cron-hook van de afbeeldingenwachtrij-worker) actief is.
  • Als de schijfruimte in de uploads-map beperkt is, zullen downloads van afbeeldingen mislukken. Het tabblad System & Help toont de beschikbare schijfruimte. Maak ruimte vrij voordat u een grote import van afbeeldingen uitvoert.

Probleemoplossing

SymptoomWaarschijnlijke oorzaakControleer
Voertuigafbeeldingen verschijnen niet na importWachtrijmodus is actief en worker is nog niet uitgevoerdControleer het tabblad System & Help voor de status van de afbeeldingenwachtrij; klik op Run Image Queue Now
Grootte van afbeeldingenwachtrij neemt niet afWorker-cron draait niet, of alle downloads van afbeeldingen mislukkenControleer de status van de Background Tasks; bekijk het logboek op fouten bij het downloaden van afbeeldingen
Image download failed fouten in logboekBronafbeeldingen niet beschikbaar of time-out bij downloadenControleer of de advertentie nog actief is in AutoScout24; controleer de uitgaande verbinding van de server
WebP-conversiefouten in logboekGD of Imagick niet beschikbaar of verkeerd geconfigureerdControleer de status van de PHP-extensie op het tabblad System & Help; schakel WebP-conversie uit indien niet nodig
Badge 'Lock stuck' voor Image ProcessorWorker heeft zijn lock niet netjes vrijgegevenLock wordt na 10 minuten automatisch gewist; klik op Run Image Queue Now om te resetten
Wachtrij groeit onbeperktVeel imports met grote afbeeldingssets; worker kan het niet bijhoudenOverweeg het maximale aantal afbeeldingen per voertuig te verlagen; controleer of WP-Cron betrouwbaar werkt

Gerelateerde documenten