std.ProcessSlideCPMessages

Dieser Job arbeitet die Queue SLIDE in oscpmqueue in einem einzigen Aufruf vollständig ab. Eine SLIDE-Nachricht signalisiert, dass für ein DMS-Objekt eine Slide-Repräsentation (seitenbasierte Vorschau-/Anzeigebilder) erzeugt oder neu erzeugt werden muss. Der Job iteriert über alle aktuell verfügbaren SLIDE-Nachrichten, erzeugt für jede die Slides über die Rendition-/Konverter-Pipeline und entfernt die Nachricht nach erfolgreicher Verarbeitung aus der Queue.

Anders als bei der Pull-basierten Einzelabholung über std.GetNextCPMessage handelt es sich hier um einen Batch-Prozessor: Ein Aufruf verarbeitet so viele Nachrichten, wie aktuell in der SLIDE-Queue verfügbar sind, und kehrt erst danach zurück.

Der Job ist primär als serverinterner Scheduler-Job ausgelegt und wird in regelmässigen Intervallen automatisch ausgeführt. Ein expliziter API-Aufruf von aussen ist möglich, im Normalbetrieb aber nicht notwendig.

Auswahl-, Sperr- und Coalescing-Verhalten der Nachrichten sind unter Capture- und Processing-Messages (CP) beschrieben.

Der Job ist in der offiziellen enaio®-Standard-Engine-Übersicht (std) nicht gelistet.

1. Eingabeparameter

Der Job nimmt keine inhaltlichen Eingabeparameter entgegen. Er arbeitet die SLIDE-Queue vollständig und ohne Filter ab.

2. Ausgabeparameter

Der Job liefert drei positionale Integer-Zähler über die Verarbeitungsstatistik des Batch-Laufs zurück:

Position Bedeutung

1

Anzahl der gefundenen SLIDE-Nachrichten in oscpmqueue.

2

Anzahl der erfolgreich verarbeiteten Nachrichten.

3

Anzahl der Nachrichten, deren Verarbeitung fehlgeschlagen ist.

3. Rückgabe

(INT): 0 = Batch-Lauf erfolgreich abgeschlossen, sonst Fehlercode. Fehler bei der Verarbeitung einzelner Nachrichten werden nicht über den Rückgabewert, sondern über den dritten Zähler gemeldet — return_code != 0 bedeutet einen schweren Fehler im Batch-Lauf selbst (z. B. Datenbank-Verbindung verloren).

4. Hinweise

  • Reentrant — der Job kann gleichzeitig auf mehreren Server-Threads laufen. Das Locking erfolgt pro Nachricht über oscpmqueue.lock_service (siehe Auswahl- und Sperrverhalten); zwei parallele Läufe holen sich automatisch disjunkte Nachrichten-Sets.

  • Schnellpfad bei leerer Queue — sind keine SLIDE-Nachrichten verfügbar, kehrt der Job sofort mit allen Zählern auf 0 zurück.

  • Nachrichten ohne erfolgreiche Verarbeitung — schlägt die Verarbeitung einer Nachricht fehl, bleibt sie mit gesetztem lock_service reserviert in der Queue stehen und kann über std.ResetServiceCPMessages für eine erneute Verarbeitung freigegeben werden.

  • Folge-Benachrichtigung — nach erfolgreicher Slide-Erzeugung kann pro Objekt std.CPRenditionChanged mit Reason=SLIDE ausgelöst werden, um Folge-Komponenten über die neue Repräsentation zu informieren.

5. Verwandte Jobs

  • std.GetNextCPMessage — Pull-basierte Einzelabholung für andere Queues (FULLTEXTIDX, RENDITION, …​); die SLIDE-Queue wird bewusst nicht so abgeholt, sondern serverseitig im Batch verarbeitet

  • std.CreateCPMessages — Einstieg für die Erzeugung von CP-Nachrichten (FULLTEXTIDX, FULLTEXTFILTER, RENDITION); SLIDE-Nachrichten werden durch andere serverinterne Pfade angelegt

  • std.CPRenditionChanged — typische Folge-Benachrichtigung nach erfolgreicher Slide-Erzeugung

  • std.DispatchCPMessage — generischer Cleanup-Pfad einer abgearbeiteten CP-Nachricht; vom Batch-Prozessor nicht verwendet, da das Löschen der SLIDE-Nachricht im Job selbst erfolgt

  • std.ResetServiceCPMessages — gibt nach einem Worker-Abbruch reservierte Nachrichten wieder frei