Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle AQ Dequeue-Reihenfolge

Ich glaube, die standardmäßige Dequeue-Reihenfolge ist first in first out, daher werden sie in der gleichen Reihenfolge aus der Warteschlange entfernt, in der sie in die Warteschlange gestellt wurden.

Sagen Sie für Ihren zweiten Punkt, dass Sie Dequeue auf der nicht eindeutigen ID serialisieren möchten? Das heißt, Sie haben im Grunde viele Warteschlangen in Ihrer Warteschlange und möchten, dass jeweils nur ein Job Nachrichten aus jeder Warteschlange verarbeitet?

Dh, Sie haben Nachrichten:

1 | a
2 | a
3 | b
4 | a

Hier haben Sie zwei Arten von Datensätzen (a und b) und Sie möchten, dass ein Job alle a's verbraucht und ein anderer alle b's verbraucht. Wenn dies der Fall ist, sollten Sie vielleicht mehrere Warteschlangen erstellen?

Wenn mehrere Warteschlangen fehlschlagen, werfen Sie einen Blick auf den Typ dequeue_options_t, den Sie an die Dequeue-Prozedur übergeben - insbesondere dequeue_condition -, damit können Sie nur bestimmte Nachrichten auswählen, sodass Sie einen Job für alle a's und einen anderen für alle b's usw. starten können.