Share via


PartitionSender.SendAsync メソッド

定義

オーバーロード

SendAsync(EventData)

特定の EventHub パーティションに送信 EventData します。 ターゲット パーティションは、この PartitionSender の作成時に事前に決定されます。 この送信パターンは、一般提供と待機時間に対するデータの相関関係を強調します。

EventHubs に送信する方法は 3 つあります。それぞれメソッドとして公開されます (sendBatch オーバーロードと共に)。

i. SendAsync(EventData) または SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String) または SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData) または SendAsync(IEnumerable<EventData>)

次の場合は、この種類の送信を使用します。

a. クライアントは、パーティション間でのデータの分散を直接制御したいと考えています。 この場合、クライアントは、イベント ハブ パーティションごとに少なくとも 1 つの送信者があることを確認する必要があります。

b. ユーザーは、特定のパーティションにイベントを転送するための平均としてパーティション キーを使用することはできませんが、パーティション構成とのデータ関連付けが必要です。

SendAsync(EventDataBatch)

EventDataBatchのバッチをEventData送信します。

SendAsync(IEnumerable<EventData>)

特定の EventHub パーティションに送信 EventData します。 対象となるパーティションは、この PartitionSender の作成時に事前に決定されます。

EventHubs に送信する方法は 3 つあります。この特定の種類の送信を理解するには、同じ種類の送信であり、単一EventDataの を送信するために使用される オーバーロード SendAsync(EventData)を参照します。

のバッチを EventData送信すると、次の場合に便利です。

i. 効率的な送信 - の EventData バッチを送信すると、EventHubs のサービスに対して作成されたセッションの数を最適に使用して、全体的なスループットが最大化されます。

ii. トランザクションで複数 EventDataの を送信しています。 ACID プロパティを実現するために、ゲートウェイ サービスはバッチ内のすべての EventDataを 1 つの EventHub パーティションに転送します。

SendAsync(EventData)

ソース:
PartitionSender.cs

特定の EventHub パーティションに送信 EventData します。 ターゲット パーティションは、この PartitionSender の作成時に事前に決定されます。 この送信パターンは、一般提供と待機時間に対するデータの相関関係を強調します。

EventHubs に送信する方法は 3 つあります。それぞれメソッドとして公開されます (sendBatch オーバーロードと共に)。

i. SendAsync(EventData) または SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String) または SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData) または SendAsync(IEnumerable<EventData>)

次の場合は、この種類の送信を使用します。

a. クライアントは、パーティション間でのデータの分散を直接制御したいと考えています。 この場合、クライアントは、イベント ハブ パーティションごとに少なくとも 1 つの送信者があることを確認する必要があります。

b. ユーザーは、特定のパーティションにイベントを転送するための平均としてパーティション キーを使用することはできませんが、パーティション構成とのデータ関連付けが必要です。

public System.Threading.Tasks.Task SendAsync (Microsoft.Azure.EventHubs.EventData eventData);
member this.SendAsync : Microsoft.Azure.EventHubs.EventData -> System.Threading.Tasks.Task
Public Function SendAsync (eventData As EventData) As Task

パラメーター

eventData
EventData

送信 EventData する 。

戻り値

送信操作が完了したときに完了するタスク。

例外

の合計サイズが EventData 、サービスによって設定された定義済みの制限を超えています。 既定値は 256,000 バイトです。

操作中に Event Hubs サービスで問題が発生しました。

適用対象

SendAsync(EventDataBatch)

ソース:
PartitionSender.cs

EventDataBatchのバッチをEventData送信します。

public System.Threading.Tasks.Task SendAsync (Microsoft.Azure.EventHubs.EventDataBatch eventDataBatch);
member this.SendAsync : Microsoft.Azure.EventHubs.EventDataBatch -> System.Threading.Tasks.Task
Public Function SendAsync (eventDataBatch As EventDataBatch) As Task

パラメーター

eventDataBatch
EventDataBatch

EventHub に送信するイベントのバッチ

戻り値

送信操作が完了したときに完了するタスク。

適用対象

SendAsync(IEnumerable<EventData>)

ソース:
PartitionSender.cs

特定の EventHub パーティションに送信 EventData します。 対象となるパーティションは、この PartitionSender の作成時に事前に決定されます。

EventHubs に送信する方法は 3 つあります。この特定の種類の送信を理解するには、同じ種類の送信であり、単一EventDataの を送信するために使用される オーバーロード SendAsync(EventData)を参照します。

のバッチを EventData送信すると、次の場合に便利です。

i. 効率的な送信 - の EventData バッチを送信すると、EventHubs のサービスに対して作成されたセッションの数を最適に使用して、全体的なスループットが最大化されます。

ii. トランザクションで複数 EventDataの を送信しています。 ACID プロパティを実現するために、ゲートウェイ サービスはバッチ内のすべての EventDataを 1 つの EventHub パーティションに転送します。

public System.Threading.Tasks.Task SendAsync (System.Collections.Generic.IEnumerable<Microsoft.Azure.EventHubs.EventData> eventDatas);
member this.SendAsync : seq<Microsoft.Azure.EventHubs.EventData> -> System.Threading.Tasks.Task
Public Function SendAsync (eventDatas As IEnumerable(Of EventData)) As Task

パラメーター

eventDatas
IEnumerable<EventData>

EventHub に送信するイベントのバッチ

戻り値

送信操作が完了したときに完了するタスク。

例外

の合計サイズが EventData 、サービスによって設定された定義済みの制限を超えています。 既定値は 256,000 バイトです。

操作中に Event Hubs サービスで問題が発生しました。

サンプル コード:

EventHubClient client = EventHubClient.Create("__connectionString__");
PartitionSender senderToPartitionOne = client.CreatePartitionSender("1");

while (true)
{
    var events = new List<EventData>();
    for (int count = 1; count < 11; count++)
    {
        var payload = new PayloadEvent(count);
        byte[] payloadBytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(payload));
        var sendEvent = new EventData(payloadBytes);
        var applicationProperties = new Dictionary<string, string>();
        applicationProperties["from"] = "csharpClient";
        sendEvent.Properties = applicationProperties;
        events.Add(sendEvent);
    }

    await senderToPartitionOne.SendAsync(events);
    Console.WriteLine("Sent Batch... Size: {0}", events.Count);

}

適用対象