Abrufen der Nachricht nach Priorität von MSMQ

8

Ich sende Nachrichten in MSMQ, indem ich seine Priorität festlege. mit C #

kann ich die Nachricht von MSMQ zuerst mit hoher Priorität bekommen?

genau wie in der Prioritätswarteschlange.

und eine Sache mehr ..

Angenommen, es gibt drei Prioritätsstufen

0 - hoch 1- Medium 2 - niedrig

Die Sequenz in der Warteschlange ist 2001122221111100

jetzt, wenn ich eine Nachricht mit hoher Priorität (0) sende, wo sie platziert wird ?? durch Festlegen der Priorität in MSMQ. Wird es sich wie die aktuelle Prioritätswarteschlange verhalten?

    
Mohsan 21.08.2009, 07:10
quelle

1 Antwort

12

MSMQ unterstützt die Prioritätswarteschlange von Nachrichten, jedoch werden Nachrichten mit derselben Priorität in der Reihenfolge ihrer Ankunft behandelt, wenn sie aus der Warteschlange genommen werden. Wenn Sie beispielsweise 3 Nachrichten senden, zwei mit der Priorität 7 und eine mit der Priorität 0, wird die erste empfangene Nachricht der Priorität 7 aus der Warteschlange entfernt, gefolgt von der zweiten empfangenen Nachricht der Priorität 7, gefolgt von der Nachricht Priorität 0. Sie sollten nichts Besonderes tun müssen, um in der Warteschlange befindliche Nachrichten in ihrer Prioritätsreihenfolge zu verarbeiten ... aber beachten Sie, dass die "älteste" Nachricht einer bestimmten Priorität vor der "neuesten" Nachricht mit der gleichen Priorität entfernt wird. Es sollte auch beachtet werden, dass Transaktionsnachrichten ihre Priorität IIRC ignorieren.

BEARBEITEN:

Obwohl MSMQ Prioritäten unterstützt, verhält es sich nicht genau wie eine Warteschlange mit Priorität. Die beiden sind unterschiedliche Algorithmen, wobei MSMQ wesentlich komplexer ist. Wenn Sie die Priorität einer Nachricht festlegen, bestimmt diese Hilfe nicht nur die Reihenfolge, in der diese Nachricht aus der Warteschlange entfernt wird, sondern beeinflusst auch die Priorität, mit der diese Nachricht durch den MSMQ-Dienst vom Absender verbreitet wird. Herausgeber zum Empfänger / Teilnehmer. Angenommen, Sie verwenden die drei niedrigsten Prioritäten (MSMQ unterstützt 8 Prioritäten von 0 (niedrigste) bis 7 (höchste)), kann das folgende Szenario auftreten:

0 = niedrig, 1 = mittel, 2 = hoch

Der Absender sendet Nachrichten mit den angegebenen Prioritäten zu den angegebenen Zeiten (Minute: Sekunde):

%Vor%

Empfänger reiht Nachrichten in seiner Warteschlange in der folgenden Reihenfolge in die Warteschlange ein (vorausgesetzt, dass keine Nachrichten aus der Warteschlange entfernt werden):

%Vor%

Wenn Sie Nachrichten aus der Warteschlange des Empfängers verarbeiten, werden sie in der Reihenfolge ihrer Priorität sowie der empfangenen Zeit verarbeitet.

    
jrista 21.08.2009, 07:15
quelle

Tags und Links