PartitionSender.SendAsync Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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
Azure SDK for .NET