Partager via


PartitionSender.SendAsync Méthode

Définition

Surcharges

SendAsync(EventData)

Envoyer EventData à une partition EventHub spécifique. La partition cible est prédéterminée lors de la création de ce PartitionSender. Ce modèle d’envoi met l’accent sur la corrélation des données par rapport à la disponibilité générale et à la latence.

Il existe 3 façons d’envoyer à EventHubs, chacune exposée en tant que méthode (avec sa surcharge sendBatch) :

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

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

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

Utilisez ce type d’envoi si :

a. Le client souhaite prendre le contrôle direct de la distribution des données entre les partitions. Dans ce cas, il incombe au client de s’assurer qu’il existe au moins un expéditeur par partition de hub d’événements.

b. L’utilisateur ne peut pas utiliser la clé de partition comme moyen de diriger des événements vers une partition spécifique, mais il est nécessaire de mettre en corrélation les données avec le schéma de partitionnement.

SendAsync(EventDataBatch)

Envoyez un lot de EventData dans EventDataBatch.

SendAsync(IEnumerable<EventData>)

Envoyer EventData à une partition EventHub spécifique. La partition ciblée est prédéterminée lors de la création de ce PartitionSender.

Il existe 3 façons d’envoyer à EventHubs. Pour comprendre ce type particulier d’envoi, reportez-vous à la surcharge SendAsync(EventData), qui est le même type d’envoi et qui est utilisé pour envoyer un seul EventData.

L’envoi d’un lot de EventDataest utile dans les cas suivants :

i. Envoi efficace : l’envoi d’un lot de EventData optimise le débit global en utilisant de manière optimale le nombre de sessions créées pour le service EventHubs.

ii. Envoi de plusieurs EventDatadans une transaction. Pour obtenir les propriétés ACID, le service de passerelle transfère tous les EventDatafichiers du lot à une seule partition EventHub.

SendAsync(EventData)

Source:
PartitionSender.cs

Envoyer EventData à une partition EventHub spécifique. La partition cible est prédéterminée lors de la création de ce PartitionSender. Ce modèle d’envoi met l’accent sur la corrélation des données par rapport à la disponibilité générale et à la latence.

Il existe 3 façons d’envoyer à EventHubs, chacune exposée en tant que méthode (avec sa surcharge sendBatch) :

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

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

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

Utilisez ce type d’envoi si :

a. Le client souhaite prendre le contrôle direct de la distribution des données entre les partitions. Dans ce cas, il incombe au client de s’assurer qu’il existe au moins un expéditeur par partition de hub d’événements.

b. L’utilisateur ne peut pas utiliser la clé de partition comme moyen de diriger des événements vers une partition spécifique, mais il est nécessaire de mettre en corrélation les données avec le schéma de partitionnement.

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

Paramètres

eventData
EventData

à EventData envoyer.

Retours

Tâche qui se termine lorsque les opérations d’envoi sont terminées.

Exceptions

la taille totale de dépasse EventData une limite prédéfinie définie par le service. La valeur par défaut est de 256 000 octets.

Le service Event Hubs a rencontré des problèmes pendant l’opération.

S’applique à

SendAsync(EventDataBatch)

Source:
PartitionSender.cs

Envoyez un lot de EventData dans 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

Paramètres

eventDataBatch
EventDataBatch

lot d’événements à envoyer à EventHub

Retours

Tâche qui se termine lorsque l’opération d’envoi est terminée.

S’applique à

SendAsync(IEnumerable<EventData>)

Source:
PartitionSender.cs

Envoyer EventData à une partition EventHub spécifique. La partition ciblée est prédéterminée lors de la création de ce PartitionSender.

Il existe 3 façons d’envoyer à EventHubs. Pour comprendre ce type particulier d’envoi, reportez-vous à la surcharge SendAsync(EventData), qui est le même type d’envoi et qui est utilisé pour envoyer un seul EventData.

L’envoi d’un lot de EventDataest utile dans les cas suivants :

i. Envoi efficace : l’envoi d’un lot de EventData optimise le débit global en utilisant de manière optimale le nombre de sessions créées pour le service EventHubs.

ii. Envoi de plusieurs EventDatadans une transaction. Pour obtenir les propriétés ACID, le service de passerelle transfère tous les EventDatafichiers du lot à une seule partition 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

Paramètres

eventDatas
IEnumerable<EventData>

lot d’événements à envoyer à EventHub

Retours

Tâche qui se termine lorsque l’opération d’envoi est terminée.

Exceptions

la taille totale de dépasse EventData une limite prédéfinie définie par le service. La valeur par défaut est de 256 000 octets.

Le service Event Hubs a rencontré des problèmes pendant l’opération.

Exemples

Exemple de code :

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

}

S’applique à