次の方法で共有


ServiceBusProcessor クラス

定義

では ServiceBusProcessor 、 のセット ServiceBusReceiver に関する抽象化が提供されます。これにより、受信した ServiceBusReceivedMessageを処理するためにイベント ベースのモデルを使用できます。 これは、 を呼び出 CreateProcessor(String, ServiceBusProcessorOptions)すことによって構築されます。 メッセージ ハンドラーは、 プロパティで ProcessMessageAsync 指定します。 エラー ハンドラーは、 プロパティと共に ProcessErrorAsync 指定されます。 ハンドラーの指定後に処理を開始するには、 を呼び出します StartProcessingAsync(CancellationToken)

public class ServiceBusProcessor : IAsyncDisposable
type ServiceBusProcessor = class
    interface IAsyncDisposable
Public Class ServiceBusProcessor
Implements IAsyncDisposable
継承
ServiceBusProcessor
実装

注釈

ServiceBusProcessorは、アプリケーションの有効期間中、または によって作成された がServiceBusClient破棄されるまで、キャッシュして使用しても安全です。 アプリケーションがメッセージを定期的に処理している場合は、プロセッサをキャッシュすることをお勧めします。 送信者は、ネットワーク、CPU、メモリの効率的な使用を確保する責任があります。 アプリケーションのシャットダウン時に 関連付けられている ServiceBusClient を呼び出DisposeAsync()すと、ネットワーク リソースと、プロセッサによって使用されるその他のアンマネージド オブジェクトが適切にクリーンアップされます。

コンストラクター

ServiceBusProcessor()

モック作成のために クラスの ServiceBusProcessor 新しいインスタンスを初期化します。

ServiceBusProcessor(ServiceBusClient, String, ServiceBusProcessorOptions)

派生型で使用する クラスの ServiceBusProcessor 新しいインスタンスを初期化します。

ServiceBusProcessor(ServiceBusClient, String, String, ServiceBusProcessorOptions)

派生型で使用する クラスの ServiceBusProcessor 新しいインスタンスを初期化します。

プロパティ

AutoCompleteMessages

メッセージ ハンドラーの処理が完了した後に、プロセッサがメッセージを自動的に完了するかどうかを示す値を取得します。 メッセージ ハンドラーが例外をトリガーした場合、メッセージは自動的に完了しません。

EntityPath

プロセッサが接続されている Service Bus エンティティのパスを取得します。これは、プロセッサを含む Service Bus 名前空間に固有です。

FullyQualifiedNamespace

レシーバーが関連付けられている完全修飾 Service Bus 名前空間を取得します。 これは、 と似ている {yournamespace}.servicebus.windows.net可能性があります。

Identifier

このプロセッサを識別するために使用される ID を取得します。 これは、ログと例外を関連付けるために使用できます。

IsClosed

これが ServiceBusProcessor 閉じられているかどうかを示します。

IsProcessing

このプロセッサが現在メッセージを処理しているかどうかを取得します。

MaxAutoLockRenewalDuration

ロックが自動的に更新される最大期間を取得します。 この値は、最も長いメッセージ ロック期間を超える必要があります。たとえば、LockDuration プロパティです。

MaxConcurrentCalls

プロセッサが開始するメッセージ ハンドラーに対する同時呼び出しの ProcessMessageAsync 最大数を取得します。

PrefetchCount

処理中にキューまたはサブスクリプションから一括要求されるメッセージの数を取得します。 これは、サービス要求を待機するのではなく、プロセッサがローカル キャッシュから受信できるようにすることで、スループットを最大化することを目的としています。

ReceiveMode

メッセージの ReceiveMode 受信方法を指定するために使用される を取得します。 既定値は PeekLock モードです。

メソッド

CloseAsync(CancellationToken)

によって使用されるリソースをクリーンするために必要なタスクを実行しますServiceBusProcessor。 すべての機内メッセージ ハンドラーが待機されます。 すべてのメッセージ処理が完了すると、基になるリンクは閉じられます。 この時点以降、 メソッドは を返します。 これは、 を呼び出すこと DisposeAsync()と同じです。

DisposeAsync()

によって使用されるリソースをクリーンするために必要なタスクを実行しますServiceBusProcessor。 すべての機内メッセージ ハンドラーが待機されます。 すべてのメッセージ処理が完了すると、基になるリンクは閉じられます。 この時点以降、 メソッドは を返します。 これは、 を呼び出すこと CloseAsync(CancellationToken)と同じです。

OnProcessErrorAsync(ProcessErrorEventArgs)

処理中にエラーが発生したときに、エラー イベント ハンドラーを呼び出します。 このメソッドをオーバーライドして、テスト目的で手動でイベントを発生させることができます。

OnProcessMessageAsync(ProcessMessageEventArgs)

メッセージの受信後にプロセス メッセージ イベント ハンドラーを呼び出します。 このメソッドをオーバーライドして、テスト目的で手動でイベントを発生させることができます。

StartProcessingAsync(CancellationToken)

メッセージの処理を開始するようにプロセッサに通知します。 プロセッサが既に実行されている間にこのメソッドを呼び出した場合は、 InvalidOperationException がスローされます。

StopProcessingAsync(CancellationToken)

メッセージングの処理を停止するようにプロセッサに通知します。 プロセッサの実行中にこのメソッドを呼び出しても、アクションは実行されません。 このメソッドは、基になるレシーバーを閉じませんが、受信側が受信を停止します。 すべてのインフライト メッセージ ハンドラーが待機され、このメソッドは、すべてのインフライト メッセージ ハンドラーが返されるまで返されません。 基になるレシーバーを閉じるには、 CloseAsync(CancellationToken) を呼び出す必要があります。 が呼び出された場合 CloseAsync(CancellationToken) 、プロセッサを再起動できません。 このメソッドを呼び出した後、ある時点で処理を再開する場合は、 を呼び出 StartProcessingAsync(CancellationToken)すことができます。

UpdateConcurrency(Int32)

プロセッサのコンカレンシーを更新します。 このメソッドを使用すると、実行中のプロセッサのコンカレンシーを動的に変更できます。

UpdatePrefetchCount(Int32)

プロセッサのプリフェッチ数を更新します。 このメソッドを使用すると、実行中のプロセッサのプリフェッチ数を動的に変更できます。

イベント

ProcessErrorAsync

このプロセッサの実行中にスローされる未処理の例外の処理を担当するハンドラー。 実装は必須です。

ProcessMessageAsync

キューまたはサブスクリプションから受信したメッセージを処理するハンドラー。 実装は必須です。

適用対象