ServiceBusProcessor Klasse

Definition

ServiceBusProcessor stellt eine Abstraktion um eine Gruppe von bereitServiceBusReceiver, die die Verwendung eines ereignisbasierten Modells für die Verarbeitung empfangener ServiceBusReceivedMessageermöglicht. Sie wird durch Aufrufen CreateProcessor(String, ServiceBusProcessorOptions)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 ServiceBusProcessor : IAsyncDisposable
type ServiceBusProcessor = class
    interface IAsyncDisposable
Public Class ServiceBusProcessor
Implements IAsyncDisposable
Vererbung
ServiceBusProcessor
Implementiert

Hinweise

Kann ServiceBusProcessor 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

ServiceBusProcessor()

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

ServiceBusProcessor(ServiceBusClient, String, ServiceBusProcessorOptions)

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

ServiceBusProcessor(ServiceBusClient, String, String, ServiceBusProcessorOptions)

Initialisiert einen neuen instance der ServiceBusProcessor -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 die ID ab, die zum Identifizieren dieses Prozessors verwendet wird. Dies kann verwendet werden, um Protokolle und Ausnahmen zu korrelieren.

IsClosed

Gibt an, ob diese ServiceBusProcessor geschlossen wurde.

IsProcessing

Ruft ab, ob dieser Prozessor derzeit Nachrichten verarbeitet.

MaxAutoLockRenewalDuration

Ruft die maximale Dauer ab, in der die Sperre automatisch verlängert wird. Dieser Wert sollte größer sein als die längste Dauer der Nachrichtensperre. beispielsweise die LockDuration-Eigenschaft.

MaxConcurrentCalls

Ruft die maximale Anzahl gleichzeitiger Aufrufe des ProcessMessageAsync Nachrichtenhandlers ab, die der Prozessor initiieren soll.

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.

Methoden

CloseAsync(CancellationToken)

Führt die Aufgabe aus, die zum sauber von ServiceBusProcessorverwendeten Ressourcen erforderlich ist. Alle In-Flight-Nachrichtenhandler werden erwartet. Sobald die gesamte Nachrichtenverarbeitung abgeschlossen ist, werden die zugrunde liegenden Links geschlossen. Nach diesem Punkt wird die -Methode zurückgegeben. Dies entspricht dem Aufrufen von DisposeAsync().

DisposeAsync()

Führt die Aufgabe aus, die zum sauber von ServiceBusProcessorverwendeten Ressourcen erforderlich ist. Alle In-Flight-Nachrichtenhandler werden erwartet. Sobald die gesamte Nachrichtenverarbeitung abgeschlossen ist, werden die zugrunde liegenden Links geschlossen. Nach diesem Punkt wird die -Methode zurückgegeben. 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.

OnProcessMessageAsync(ProcessMessageEventArgs)

Ruft den Prozessnachrichtenereignishandler auf, nachdem eine Nachricht empfangen wurde. 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)

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.

Gilt für: