Share via


PartitionSender.SendAsync Método

Definición

Sobrecargas

SendAsync(EventData)

Enviar EventData a una partición de EventHub específica. La partición de destino se determina previamente cuando se creó partitionSender. Este patrón de envío resalta la correlación de datos sobre la disponibilidad y la latencia generales.

Hay 3 maneras de enviar a EventHubs, cada uno expuesto como método (junto con su sobrecarga sendBatch):

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

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

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

Use este tipo de envío si:

a. El cliente quiere tomar el control directo de la distribución de datos entre particiones. En este caso, el cliente es responsable de asegurarse de que hay al menos un remitente por partición del centro de eventos.

b. El usuario no puede usar la clave de partición como medio para dirigir eventos a una partición específica, pero hay una necesidad de correlación de datos con el esquema de partición.

SendAsync(EventDataBatch)

Envíe un lote de EventData en EventDataBatch.

SendAsync(IEnumerable<EventData>)

Enviar EventData a una partición de EventHub específica. La partición de destino se determina previamente cuando se creó partitionSender.

Hay 3 maneras de enviar a EventHubs, para comprender este tipo concreto de envío, haga referencia a la sobrecarga SendAsync(EventData), que es el mismo tipo de envío y se usa para enviar un solo EventData.

Enviar un lote de EventData's es útil en los casos siguientes:

i. Envío eficaz: el envío de un lote de EventData maximiza el rendimiento general mediante el uso óptimo del número de sesiones creadas en el servicio de EventHubs.

ii. Enviar varios EventDataen una transacción. Para lograr las propiedades ACID, el servicio de puerta de enlace reenviará todo EventDatael lote a una sola partición de EventHub.

SendAsync(EventData)

Source:
PartitionSender.cs

Enviar EventData a una partición de EventHub específica. La partición de destino se determina previamente cuando se creó partitionSender. Este patrón de envío resalta la correlación de datos sobre la disponibilidad y la latencia generales.

Hay 3 maneras de enviar a EventHubs, cada uno expuesto como método (junto con su sobrecarga sendBatch):

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

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

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

Use este tipo de envío si:

a. El cliente quiere tomar el control directo de la distribución de datos entre particiones. En este caso, el cliente es responsable de asegurarse de que hay al menos un remitente por partición del centro de eventos.

b. El usuario no puede usar la clave de partición como medio para dirigir eventos a una partición específica, pero hay una necesidad de correlación de datos con el esquema de partición.

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

que EventData se va a enviar.

Devoluciones

Tarea que se completa cuando se realizan las operaciones de envío.

Excepciones

el tamaño total de EventData supera un límite predefinido establecido por el servicio. El valor predeterminado es 256 000 bytes.

El servicio Event Hubs encontró problemas durante la operación.

Se aplica a

SendAsync(EventDataBatch)

Source:
PartitionSender.cs

Envíe un lote de EventData en 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

el lote de eventos que se van a enviar a EventHub

Devoluciones

Tarea que se completa cuando se realiza la operación de envío.

Se aplica a

SendAsync(IEnumerable<EventData>)

Source:
PartitionSender.cs

Enviar EventData a una partición de EventHub específica. La partición de destino se determina previamente cuando se creó partitionSender.

Hay 3 maneras de enviar a EventHubs, para comprender este tipo concreto de envío, haga referencia a la sobrecarga SendAsync(EventData), que es el mismo tipo de envío y se usa para enviar un solo EventData.

Enviar un lote de EventData's es útil en los casos siguientes:

i. Envío eficaz: el envío de un lote de EventData maximiza el rendimiento general mediante el uso óptimo del número de sesiones creadas en el servicio de EventHubs.

ii. Enviar varios EventDataen una transacción. Para lograr las propiedades ACID, el servicio de puerta de enlace reenviará todo EventDatael lote a una sola partición de 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 que se van a enviar a EventHub

Devoluciones

una tarea que se completa cuando se realiza la operación de envío.

Excepciones

el tamaño total de EventData supera un límite predefinido establecido por el servicio. El valor predeterminado es 256 000 bytes.

El servicio Event Hubs encontró problemas durante la operación.

Ejemplos

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

}

Se aplica a