次の方法で共有


EventProcessorClient クラス

定義

特定のコンシューマー グループのスコープ内の特定のイベント ハブのすべてのパーティションでイベントを使用および処理できます。  プロセッサは、共通のストレージ プラットフォームを使用して通信を行うことで、同じ Event Hub とコンシューマー グループのペアリングに対して他のインスタンスと共同作業を行い、作業を共有できます。  フォールト トレランスも組み込まれているため、エラーが発生した場合にプロセッサに回復性を持たせます。

public class EventProcessorClient : Azure.Messaging.EventHubs.Primitives.EventProcessor<Azure.Messaging.EventHubs.Primitives.EventProcessorPartition>
type EventProcessorClient = class
    inherit EventProcessor<EventProcessorPartition>
Public Class EventProcessorClient
Inherits EventProcessor(Of EventProcessorPartition)
継承

注釈

インスタンス間 EventProcessorClient でパーティションを共有するための調整を有効にするために、コンシューマー グループのパーティションに対する排他的読み取りアクセスをアサートします。 共同作業を行うプロセッサ以外のコンシューマー グループでは、他のリーダーをアクティブにする必要はありません。 排他的でないリーダーはアクセスを拒否されます。別のストレージの場所を使用するプロセッサを含む排他的リーダーは、プロセッサの操作とパフォーマンスに干渉します。

EventProcessorClientは、アプリケーションの有効期間中は安全にキャッシュして使用できます。これは、アプリケーションがイベントを定期的または半定期的に処理する場合にベスト プラクティスです。 プロセッサは、効率的なネットワーク、CPU、メモリの使用を確保する役割を担います。 または StopProcessing(CancellationToken)StopProcessingAsync(CancellationToken)呼び出すと、処理が完了したとき、またはアプリケーションがシャットダウンするときに、ネットワーク リソースやその他のアンマネージ オブジェクトが適切にクリーンアップされます。

コンストラクター

EventProcessorClient()

EventProcessorClient クラスの新しいインスタンスを初期化します。

EventProcessorClient(BlobContainerClient, String, String)

EventProcessorClient クラスの新しいインスタンスを初期化します。

EventProcessorClient(BlobContainerClient, String, String, EventProcessorClientOptions)

EventProcessorClient クラスの新しいインスタンスを初期化します。

EventProcessorClient(BlobContainerClient, String, String, String)

EventProcessorClient クラスの新しいインスタンスを初期化します。

EventProcessorClient(BlobContainerClient, String, String, String, AzureNamedKeyCredential, EventProcessorClientOptions)

EventProcessorClient クラスの新しいインスタンスを初期化します。

EventProcessorClient(BlobContainerClient, String, String, String, AzureSasCredential, EventProcessorClientOptions)

EventProcessorClient クラスの新しいインスタンスを初期化します。

EventProcessorClient(BlobContainerClient, String, String, String, EventProcessorClientOptions)

EventProcessorClient クラスの新しいインスタンスを初期化します。

EventProcessorClient(BlobContainerClient, String, String, String, TokenCredential, EventProcessorClientOptions)

EventProcessorClient クラスの新しいインスタンスを初期化します。

プロパティ

ConsumerGroup

このイベント プロセッサが関連付けられているコンシューマー グループの名前。 イベントは、このグループのコンテキストでのみ読み取られます。

EventHubName

プロセッサが接続されているイベント ハブの名前。プロセッサを含む Event Hubs 名前空間に固有です。

FullyQualifiedNamespace

プロセッサが関連付けられている完全修飾 Event Hubs 名前空間。 これは と似ている {yournamespace}.servicebus.windows.net可能性があります。

Identifier

このイベント プロセッサを識別するために使用される一意の名前。

IsRunning

このイベント プロセッサが現在実行されているかどうかを示します。

RetryPolicy

プロセッサの再試行を制御するアクティブなポリシー。

(継承元 EventProcessor<TPartition>)

メソッド

ClaimOwnershipAsync(IEnumerable<EventProcessorPartitionOwnership>, CancellationToken)

処理のために、指定されたパーティションの所有権の要求を試みます。 このメソッドは、負荷分散によって使用され、イベント プロセッサ インスタンスが、特定のイベント ハブとコンシューマー グループのペアのパーティションを処理する責任をアクティブなイベント プロセッサ間で分散できるようにします。

CreateConnection()

EventHubConnection Event Hubs サービスとの通信に使用する を作成します。

GetCheckpointAsync(String, CancellationToken)

特定のパーティションの処理を適切に初期化できるように、イベント プロセッサ インスタンスに関連付けられているイベント ハブ、コンシューマー グループ、およびパーティション ID のチェックポイントを返します。

ListOwnershipAsync(CancellationToken)

特定のイベント ハブとコンシューマー グループのペアリングに対応する各イベント プロセッサ インスタンス間のパーティションの所有権の割り当ての一覧を生成します。 この方法は、プロセッサが他のアクティブなコラボレーターを検出し、それらの間で作業のバランスを最適に調整する方法を決定するために負荷分散するときに使用されます。

ListPartitionIdsAsync(EventHubConnection, CancellationToken)

Event Hub パーティションの識別子を照会します。

(継承元 EventProcessor<TPartition>)
OnInitializingPartitionAsync(EventProcessorPartition, CancellationToken)

イベント処理のためにパーティションとそれに関連付けられているコンテキストを初期化するタスクを実行します。

OnInitializingPartitionAsync(TPartition, CancellationToken)

イベント処理のためにパーティションとそれに関連付けられているコンテキストを初期化するタスクを実行します。

(継承元 EventProcessor<TPartition>)
OnPartitionProcessingStoppedAsync(EventProcessorPartition, ProcessingStoppedReason, CancellationToken)

パーティションの処理が停止しているときに必要なタスクを実行します。 これは、通常、パーティションが別のイベント プロセッサ インスタンスによって要求された場合、または現在のイベント プロセッサ インスタンスがシャットダウンするときに発生します。

OnPartitionProcessingStoppedAsync(TPartition, ProcessingStoppedReason, CancellationToken)

パーティションの処理が停止しているときに必要なタスクを実行します。 これは、通常、パーティションが別のイベント プロセッサ インスタンスによって要求された場合、または現在のイベント プロセッサ インスタンスがシャットダウンするときに発生します。

(継承元 EventProcessor<TPartition>)
OnProcessingErrorAsync(Exception, EventProcessorPartition, String, CancellationToken)

イベント プロセッサ インフラストラクチャの操作内で予期しない例外が発生したときに必要なタスクを実行します。

OnProcessingErrorAsync(Exception, TPartition, String, CancellationToken)

イベント プロセッサ インフラストラクチャの操作内で予期しない例外が発生したときに必要なタスクを実行します。

(継承元 EventProcessor<TPartition>)
OnProcessingEventBatchAsync(IEnumerable<EventData>, EventProcessorPartition, CancellationToken)

Event Hubs サービスから読み取られた特定のパーティションのイベントのバッチを処理するために必要なタスクを実行します。

OnProcessingEventBatchAsync(IEnumerable<EventData>, TPartition, CancellationToken)

Event Hubs サービスから読み取られた特定のパーティションのイベントのバッチを処理するために必要なタスクを実行します。

(継承元 EventProcessor<TPartition>)
ReadLastEnqueuedEventProperties(String)

イベントが Event Hubs サービスから受信されると、このコンテキストに関連付けられている EventHubs クライアントによって観察される、パーティションの最後のエンキューイベントに関する一連の情報。 これは、コンシューマーが set で TrackLastEnqueuedEventProperties 作成された場合にのみ使用できます。

(継承元 EventProcessor<TPartition>)
StartProcessing(CancellationToken)

イベントの処理を EventProcessorClient 開始するように を通知します。 プロセッサの実行中にこのメソッドを呼び出しても、アクションは実行されません。

StartProcessingAsync(CancellationToken)

イベントの処理を EventProcessorClient 開始するように を通知します。 プロセッサの実行中にこのメソッドを呼び出しても、アクションは実行されません。

StopProcessing(CancellationToken)

イベントの処理を EventProcessorClient 停止するように を通知します。 プロセッサの実行中にこのメソッドを呼び出しても、何も実行されません。

StopProcessingAsync(CancellationToken)

イベントの処理を EventProcessorClient 停止するように を通知します。 プロセッサの実行中にこのメソッドを呼び出しても、何も実行されません。

UpdateCheckpointAsync(String, Int64, Nullable<Int64>, CancellationToken)

特定のパーティションのチェックポイントを作成または更新し、イベント プロセッサが読み取りを開始するパーティションのイベント ストリーム内の位置を識別します。

ValidateProcessingPreconditions(CancellationToken)

プロセッサが機能するために必要な依存関係の基本的な構成とアクセス許可を検証するために必要なタスクを実行します。

イベント

PartitionClosingAsync

パーティションの処理が停止しているときに必要なタスクを実行します。 これは、通常、パーティションが別のイベント プロセッサ インスタンスによって要求された場合、または現在のイベント プロセッサ インスタンスがシャットダウンするときに発生します。

プロセッサの状態は、このメソッド内から直接管理することはお勧めしません。プロセッサの起動または停止を要求すると、特に呼び出しの同期形式を使用している場合にデッドロック シナリオが発生する可能性があります。

PartitionInitializingAsync

イベント処理のためにパーティションとそれに関連付けられているコンテキストを初期化するタスクを実行します。

プロセッサの状態は、このメソッド内から直接管理することはお勧めしません。プロセッサの起動または停止を要求すると、特に呼び出しの同期形式を使用している場合にデッドロック シナリオが発生する可能性があります。

ProcessErrorAsync

イベント プロセッサ インフラストラクチャの操作内で予期しない例外が発生したときに必要なタスクを実行します。 実装は必須です。

このエラー ハンドラーは、それ自体に EventProcessorClient 例外が見られる場合に呼び出されます。開発者コードを実行するイベントやその他のイベント ハンドラーや拡張ポイントを処理するために実装されたコード内の例外に対しては呼び出されません。 は EventProcessorClient 、例外から回復し、処理を続行するためにあらゆる努力をします。 回復できない例外が発生した場合、プロセッサは処理していたすべてのパーティションの所有権を失い、作業を再配布しようとします。

このメソッドに表示される例外は、致命的または致命的ではない可能性があります。プロセッサは例外が致命的かどうか、またはその状態が破損したかどうかを正確に予測できない可能性があるため、このメソッドは、処理を終了するか再起動するかを決定する必要があります。 必要に応じて、 や StartProcessingAsync(CancellationToken)を呼び出StopProcessingAsync(CancellationToken)すことで安全に行うことができます。

運用環境のシナリオでは、このエラー ハンドラーによって行われた観察、パーティションの処理を初期化するときに呼び出されるメソッド、およびパーティションの処理が停止したときに呼び出されるメソッドを考慮して決定することをお勧めします。 多くの開発者は、この決定にも監視プラットフォームからのデータを含めます。

イベント処理と同様に、エラー ハンドラーのコードで例外が発生した場合、イベント プロセッサはバブル処理を許可し、どのような方法でも処理を試みません。 開発者は、例外シナリオを考慮し、必要に応じて try/catch ブロックやその他の手段を使用してそれらに対して保護することを強くお勧めします。

ProcessEventAsync

Event Hubs サービスから読み取られた特定のパーティションのイベントのバッチを処理するために必要なタスクを実行します。 実装は必須です。

このメソッドのコード内で例外が発生した場合、イベント プロセッサは、何らかの方法で処理を試みることなく、スタックを伝達できるようにします。 ほとんどのホストでは、パーティション処理を担当するタスクがエラーになり、最後のチェックポイントから再起動されます。 一部のホストでは、プロセスがクラッシュする可能性があります。 開発者は、すべての例外シナリオを考慮し、必要に応じて try/catch ブロックやその他の手段を使用してそれらに対して保護することを強くお勧めします。

プロセッサの状態は、このハンドラー内から直接管理することはお勧めしません。プロセッサの起動または停止を要求すると、特に呼び出しの同期形式を使用している場合にデッドロック シナリオが発生する可能性があります。

適用対象