Compartilhar via


PartitionSender.SendAsync Método

Definição

Sobrecargas

SendAsync(EventData)

Enviar EventData para uma partição específica do EventHub. A partição de destino é predeterminada quando esse PartitionSender foi criado. Esse padrão de envio enfatiza a correlação de dados em relação à disponibilidade geral e à latência.

Há três maneiras de enviar para EventHubs, cada uma exposta como um método (juntamente com sua sobrecarga sendBatch):

i. SendAsync(EventData) ou SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String) ou SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData) ou SendAsync(IEnumerable<EventData>)

Use esse tipo de envio se:

a. O cliente deseja assumir o controle direto da distribuição de dados entre partições. Nesse caso, o cliente é responsável por garantir que haja pelo menos um remetente por partição do hub de eventos.

b. O usuário não pode usar a chave de partição como uma média para direcionar eventos para partição específica, mas há a necessidade de correlação de dados com o esquema de particionamento.

SendAsync(EventDataBatch)

Enviar um lote de EventData em EventDataBatch.

SendAsync(IEnumerable<EventData>)

Enviar EventData para uma partição específica do EventHub. A partição de destino é predeterminada quando esse PartitionSender foi criado.

Há três maneiras de enviar para EventHubs, para entender esse tipo específico de envio, consulte a sobrecarga SendAsync(EventData), que é o mesmo tipo de envio e é usada para enviar um único EventData.

O envio de um lote de EventData's é útil nos seguintes casos:

i. Envio eficiente – o envio de um lote de maximiza a taxa de EventData transferência geral usando o número de sessões criadas para o serviço do EventHubs.

ii. Enviando vários EventData's em uma transação. Para obter propriedades ACID, o Serviço de Gateway encaminhará todos no EventDatalote para uma única partição do EventHub.

SendAsync(EventData)

Origem:
PartitionSender.cs

Enviar EventData para uma partição específica do EventHub. A partição de destino é predeterminada quando esse PartitionSender foi criado. Esse padrão de envio enfatiza a correlação de dados em relação à disponibilidade geral e à latência.

Há três maneiras de enviar para EventHubs, cada uma exposta como um método (juntamente com sua sobrecarga sendBatch):

i. SendAsync(EventData) ou SendAsync(IEnumerable<EventData>)

ii. SendAsync(EventData, String) ou SendAsync(IEnumerable<EventData>, String)

iii. SendAsync(EventData) ou SendAsync(IEnumerable<EventData>)

Use esse tipo de envio se:

a. O cliente deseja assumir o controle direto da distribuição de dados entre partições. Nesse caso, o cliente é responsável por garantir que haja pelo menos um remetente por partição do hub de eventos.

b. O usuário não pode usar a chave de partição como uma média para direcionar eventos para partição específica, mas há a necessidade de correlação de dados com o esquema de particionamento.

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

Parâmetros

eventData
EventData

o EventData a ser enviado.

Retornos

Uma Tarefa que é concluída quando as operações de envio são concluídas.

Exceções

o tamanho total do EventData excede um limite predefinido definido pelo serviço. O padrão é 256 mil bytes.

O serviço hubs de eventos encontrou problemas durante a operação.

Aplica-se a

SendAsync(EventDataBatch)

Origem:
PartitionSender.cs

Enviar um lote de EventData em EventDataBatch.

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

Parâmetros

eventDataBatch
EventDataBatch

o lote de eventos a serem enviados para o EventHub

Retornos

Uma Tarefa que é concluída quando a operação de envio é concluída.

Aplica-se a

SendAsync(IEnumerable<EventData>)

Origem:
PartitionSender.cs

Enviar EventData para uma partição específica do EventHub. A partição de destino é predeterminada quando esse PartitionSender foi criado.

Há três maneiras de enviar para EventHubs, para entender esse tipo específico de envio, consulte a sobrecarga SendAsync(EventData), que é o mesmo tipo de envio e é usada para enviar um único EventData.

O envio de um lote de EventData's é útil nos seguintes casos:

i. Envio eficiente – o envio de um lote de maximiza a taxa de EventData transferência geral usando o número de sessões criadas para o serviço do EventHubs.

ii. Enviando vários EventData's em uma transação. Para obter propriedades ACID, o Serviço de Gateway encaminhará todos no EventDatalote para uma única partição do 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

Parâmetros

eventDatas
IEnumerable<EventData>

lote de eventos a serem enviados para o EventHub

Retornos

uma Tarefa que é concluída quando a operação de envio é concluída.

Exceções

o tamanho total do EventData excede um limite predefinido definido pelo serviço. O padrão é 256 mil bytes.

O serviço hubs de eventos encontrou problemas durante a operação.

Exemplos

Exemplo de código:

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);

}

Aplica-se a