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 ( |
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 |
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
0zurück. -
Nachrichten ohne erfolgreiche Verarbeitung — schlägt die Verarbeitung einer Nachricht fehl, bleibt sie mit gesetztem
lock_servicereserviert 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=SLIDEausgelö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