2017-09-06 3 views
0

Je cherche à migrer un travail qui utilise Microsoft.ServiceBus sur Microsoft.Azure.ServiceBus. C'est ainsi que nous pouvons cibler la norme .net.Microsoft.Azure.ServiceBus .net standard - Comment recevoir par lots

Le code précédent utilise ReceiveBatchAsync afin de récupérer plusieurs messages dans un même appel.

Dans le nouvel espace de noms, je ne vois pas comment.

Y at-il quelque chose de nouveau dans la conception qui rend cette redondance, ou la version 1.0.0 n'est-elle que partiellement terminée?

Les instructions de meilleure pratique semblent se référer à la version Microsoft.ServiceBus.

Répondre

0

La méthode batch est maintenant appelée ReceiveAsync, utilisez la surcharge avec le paramètre maxMessageCount.

/// <summary> 
/// Receives a maximum of <paramref name="maxMessageCount"/> messages from 
/// the entity defined by IReceiverClient.Path using ReceiveMode mode. 
/// </summary> 
/// <param name="maxMessageCount">The maximum number of messages that will 
/// be received.</param> 
/// <returns>List of messages received. Returns null if no message is found.</returns>  
Task<IList<Message>> ReceiveAsync(int maxMessageCount); 
+0

Avez-vous constaté une dégradation des performances entre les deux versions? Mes tests (très préliminaires) ont l'air plus lent. –

+0

@MarkW N'a fait aucune comparaison de la vie réelle ... – Mikhail

0

Dans la version 2.0 de Microsoft.Azure.ServiceBus il n'y a pas de support pour recevoir des messages par lots. La seule façon est d'utiliser la pompe de message, qui dans Microsoft.ServiceBus.Messaging a été appelée OnMessage, et dans. Net Standard paquet nuget est appelé RegisterMessageHandler.

Il y a une grande comparsion de ces deux clients par Sean Feldman ici: Microsoft.ServiceBus.Messaging vs Microsoft.Azure.ServiceBus

Microsoft.Azure.ServiceBus est encore en cours d'élaboration et qu'il n'a pas encore pour l'instant (Mars 2018) le soutien de la création d'entités, de sorte que vous ne pouvez pas par exemple créer ou mettre à jour un abonnement à un sujet.