Freigeben über


ServiceBusSessionProcessor Klasse

Definition

ServiceBusSessionProcessor stellt eine Abstraktion um eine Gruppe von bereitServiceBusSessionReceiver, die die Verwendung eines ereignisbasierten Modells für die Verarbeitung empfangener ServiceBusReceivedMessageermöglicht. Sie wird durch Aufrufen CreateSessionProcessor(String, ServiceBusSessionProcessorOptions)von erstellt. Der Nachrichtenhandler wird mit der ProcessMessageAsync -Eigenschaft angegeben. Der Fehlerhandler wird mit der ProcessErrorAsync -Eigenschaft angegeben. Rufen Sie StartProcessingAsync(CancellationToken)auf, um mit der Verarbeitung zu beginnen, nachdem die Handler angegeben wurden.

public class ServiceBusSessionProcessor : IAsyncDisposable
type ServiceBusSessionProcessor = class
    interface IAsyncDisposable
Public Class ServiceBusSessionProcessor
Implements IAsyncDisposable
Vererbung
ServiceBusSessionProcessor
Implementiert

Hinweise

Kann ServiceBusSessionProcessor sicher zwischengespeichert und verwendet werden, während der Lebensdauer einer Anwendung oder bis die, von der ServiceBusClient sie erstellt wurde, verworfen wird. Das Zwischenspeichern des Prozessors wird empfohlen, wenn die Anwendung regelmäßig Nachrichten verarbeitet. Der Absender ist dafür verantwortlich, eine effiziente Netzwerk-, CPU- und Arbeitsspeichernutzung sicherzustellen. Durch das Aufrufen DisposeAsync() des zugeordneten ServiceBusClient beim Herunterfahren der Anwendung wird sichergestellt, dass Netzwerkressourcen und andere nicht verwaltete Objekte, die vom Prozessor verwendet werden, ordnungsgemäß bereinigt werden.

Konstruktoren

ServiceBusSessionProcessor()

Initialisiert eine neue instance der -Klasse für die ServiceBusSessionProcessor Simulation.

ServiceBusSessionProcessor(ServiceBusClient, String, ServiceBusSessionProcessorOptions)

Initialisiert einen neuen instance der ServiceBusSessionProcessor -Klasse zur Verwendung mit abgeleiteten Typen.

ServiceBusSessionProcessor(ServiceBusClient, String, String, ServiceBusSessionProcessorOptions)

Initialisiert einen neuen instance der ServiceBusSessionProcessor -Klasse zur Verwendung mit abgeleiteten Typen.

Eigenschaften

AutoCompleteMessages

Ruft einen Wert ab, der angibt, ob der Prozessor Meldungen automatisch abschließen soll, nachdem der Nachrichtenhandler die Verarbeitung abgeschlossen hat. Wenn der Nachrichtenhandler eine Ausnahme auslöst, wird die Nachricht nicht automatisch abgeschlossen.

EntityPath

Ruft den Pfad der Service Bus-Entität ab, mit der der Prozessor verbunden ist, spezifisch für den Service Bus-Namespace, der ihn enthält.

FullyQualifiedNamespace

Ruft den vollqualifizierten Service Bus-Namespace ab, dem der Empfänger zugeordnet ist. Dies ist wahrscheinlich ähnlich wie .{yournamespace}.servicebus.windows.net

Identifier

Ruft den Bezeichner ab, der zum Identifizieren dieses Prozessorclients verwendet wird. Wenn null oder leer, wird ein zufälliger eindeutiger Wert verwendet.

InnerProcessor

Die ServiceBusProcessor , an die der Sitzungsprozessor delegiert. Dies kann zu Testzwecken überschrieben werden.

IsClosed

Gibt an, ob diese ServiceBusSessionProcessor geschlossen wurde.

IsProcessing

Ruft ab, ob dieser Prozessor derzeit Nachrichten verarbeitet.

MaxAutoLockRenewalDuration

Ruft die maximale Dauer ab, in der die Sitzungssperre automatisch verlängert wird.

MaxConcurrentCallsPerSession

Ruft die maximale Anzahl von Aufrufen des Rückrufs ab, die der Prozessor pro Sitzung initiiert. Daher ist die Gesamtzahl der Rückrufe gleich MaxConcurrentSessions * MaxConcurrentCallsPerSession. Der Standardwert ist 1.

MaxConcurrentSessions

Ruft die maximale Anzahl von Sitzungen ab, die gleichzeitig vom Prozessor verarbeitet werden. Der Standardwert ist 8.

PrefetchCount

Ruft die Anzahl der Nachrichten ab, die während der Verarbeitung eifrig von Warteschlangen oder Abonnements angefordert werden. Dies soll dazu beitragen, den Durchsatz zu maximieren, indem der Prozessor aus einem lokalen Cache empfangen kann, anstatt auf eine Dienstanforderung zu warten.

ReceiveMode

Ruft den ab, mit dem ReceiveMode angegeben wird, wie Nachrichten empfangen werden. Standardmäßig wird der PeekLock-Modus verwendet.

SessionIdleTimeout

Ruft die maximale Zeit ab, in der auf den Empfang einer Nachricht für die derzeit aktive Sitzung gewartet wird. Nach Ablauf dieser Zeit schließt der Prozessor die Sitzung, und versucht, eine weitere Sitzung zu verarbeiten. Wenn nicht angegeben, wird verwendet TryTimeout .

Methoden

CloseAsync(CancellationToken)

Führt die Aufgabe aus, die zum sauber von ServiceBusSessionProcessorverwendeten Ressourcen erforderlich ist.

DisposeAsync()

Führt die Aufgabe aus, die zum sauber von ServiceBusSessionProcessorverwendeten Ressourcen erforderlich ist. Dies entspricht dem Aufrufen von CloseAsync(CancellationToken).

OnProcessErrorAsync(ProcessErrorEventArgs)

Ruft den Fehlerereignishandler auf, wenn während der Verarbeitung ein Fehler aufgetreten ist. Diese Methode kann überschrieben werden, um ein Ereignis zu Testzwecken manuell auszulösen.

OnProcessSessionMessageAsync(ProcessSessionMessageEventArgs)

Ruft den Prozessnachrichtenereignishandler auf, nachdem eine Nachricht empfangen wurde. Diese Methode kann überschrieben werden, um ein Ereignis zu Testzwecken manuell auszulösen.

OnSessionClosingAsync(ProcessSessionEventArgs)

Ruft den Sitzungsschließereignishandler auf, wenn eine Sitzung zur Verarbeitung geschlossen werden soll. Diese Methode kann überschrieben werden, um ein Ereignis zu Testzwecken manuell auszulösen.

OnSessionInitializingAsync(ProcessSessionEventArgs)

Ruft den Sitzungs-Open-Ereignishandler auf, wenn eine neue Sitzung verarbeitet werden soll. Diese Methode kann überschrieben werden, um ein Ereignis zu Testzwecken manuell auszulösen.

StartProcessingAsync(CancellationToken)

Signalisiert den Prozessor, mit der Verarbeitung von Nachrichten zu beginnen. Wenn diese Methode aufgerufen wird, während der Prozessor bereits ausgeführt wird, wird eine InvalidOperationException ausgelöst.

StopProcessingAsync(CancellationToken)

Signalisiert den Prozessor, die Verarbeitung von Messaging zu beenden. Wenn diese Methode aufgerufen wird, während der Prozessor nicht ausgeführt wird, wird keine Aktion ausgeführt. Diese Methode schließt die zugrunde liegenden Empfänger nicht, sondern bewirkt, dass die Empfänger nicht mehr empfangen werden. Alle In-Flight-Nachrichtenhandler werden erwartet, und diese Methode wird erst zurückgegeben, wenn alle in-Flight-Nachrichtenhandler zurückgegeben wurden. Um die zugrunde liegenden Empfänger zu schließen, CloseAsync(CancellationToken) sollte aufgerufen werden. Wenn CloseAsync(CancellationToken) aufgerufen wird, kann der Prozessor nicht neu gestartet werden. Wenn Sie die Verarbeitung nach dem Aufrufen dieser Methode zu einem bestimmten Zeitpunkt fortsetzen möchten, können Sie aufrufen StartProcessingAsync(CancellationToken).

UpdateConcurrency(Int32, Int32)

Updates die Parallelität für den Prozessor. Diese Methode kann verwendet werden, um die Parallelität eines ausgeführten Prozessors dynamisch zu ändern.

UpdatePrefetchCount(Int32)

Updates die Anzahl der Vorabrufe für den Prozessor. Diese Methode kann verwendet werden, um die Vorabrufanzahl eines ausgeführten Prozessors dynamisch zu ändern.

Ereignisse

ProcessErrorAsync

Der Handler, der für die Verarbeitung unbehandelter Ausnahmen verantwortlich ist, die während der Ausführung dieses Prozessors ausgelöst werden. Die Implementierung ist obligatorisch.

ProcessMessageAsync

Der Handler, der für die Verarbeitung von Nachrichten verantwortlich ist, die von der Warteschlange oder dem Abonnement empfangen werden. Die Implementierung ist obligatorisch.

SessionClosingAsync

Optionaler Handler, der so festgelegt werden kann, dass er benachrichtigt wird, wenn eine Sitzung zur Verarbeitung geschlossen wird. Dies bedeutet, dass für den letzten ReceiveMessageAsync(Nullable<TimeSpan>, CancellationToken) Aufruf ein Timeout aufgetreten ist oder der ReleaseSession() im ProcessMessageAsync Handler aufgerufen wurde.

SessionInitializingAsync

Optionaler Handler, der so festgelegt werden kann, dass er benachrichtigt wird, wenn eine neue Sitzung verarbeitet werden soll.

Gilt für: