Messages de suppression par lots dans Azure Service Bus (préversion)
Azure Service Bus est un répartiteur de messages d’intégration d’entreprise entièrement managé qui vous permet d’envoyer et de recevoir des messages entre des applications et des services découplés. Toutefois, il peut vous arriver de vouloir supprimer des messages d’une file d’attente ou d’un abonnement sans les traiter, par exemple s’ils ont expiré, s’ils sont endommagés ou s’ils ne sont plus pertinents. Cet article explique comment supprimer des messages par lots dans Azure Service Bus.
Scénarios de suppression de messages par lots
Il existe plusieurs scénarios dans lesquels vous souhaiterez peut-être utiliser la fonctionnalité de suppression par lots des messages dans Azure Service Bus. parmi lesquelles :
- Messages expirés : supprimez les messages qui dépassent leur valeur de durée de vie (TTL) et qui se trouvent dans la file d’attente de lettres mortes.
- Échec de la validation ou du traitement : supprimez les messages ayant échoué dans la logique de validation ou de traitement et qui se trouvent dans la file d’attente de lettres mortes.
- Messages non pertinents : supprimez les messages qui ne sont plus pertinents pour votre logique d’application à partir de la file d’attente active.
- Gestion des doublons ou du contenu incorrect : supprimez les messages dupliqués ou incorrects de la file d’attente active.
En utilisant la fonctionnalité de suppression de messages par lots, vous pouvez supprimer plusieurs messages d’une file d’attente ou d’un abonnement en une seule opération, au lieu de les supprimer un par un. Étant donné que la suppression est effectuée côté service, vous n’avez pas besoin de recevoir les messages avant de les supprimer. Cette méthode réduit le nombre de demandes de service et la latence réseau.
Important
Actuellement, la suppression par lots n’est pas prise en charge avec les entités partitionnées. Vous pouvez supprimer un maximum de 4 000 messages dans un appel de suppression par lots. La suppression par lots est effectuée au mieux et ne garantit pas que le nombre messageCount exact sera supprimé en un seul appel d’API.
Comment supprimer des messages par lots dans Service Bus
Vous pouvez supprimer des messages en appelant DeleteMessagesAsync sur l’objet Récepteur Service Bus. Côté serveur, DeleteMessagesAsync
nécessite deux paramètres : messageCount
et beforeEnqueueTime
.
messageCount
: nombre souhaité de messages à supprimer. Le service peut supprimer moins de messages que cette limite.beforeEnqueueTime
: DateTimeOffset facultatif, en UTC, représentant l’heure de coupure pour la suppression. Seuls les messages mis en file d’attente avant cette heure sont supprimés.
En outre, vous pouvez appeler PurgeMessagesAsync pour vider tous les messages de l’entité.
En passant par le portail Azure
Vous pouvez également vider les messages d’une entité en utilisant Service Bus Explorer disponible sur le Portail Azure. Vous pouvez suivre les étapes ci-dessous pour vider les messages :
- Accédez au panneau « Service Bus Explorer » sur l’entité de laquelle vous souhaitez supprimer les messages.
- Choisissez « Mode de réception » dans la liste déroulante Service Bus Explorer.
- Cliquez sur l’option de vidage des messages, comme indiqué dans l’instantané.
- Une autre boîte de dialogue s’affiche, entrez « vider » pour exécuter l’opération de vidage des messages.
Lorsque vous utilisez des SDK Azure pour effectuer ces opérations, le paramètre beforeEnqueueTime est défini par défaut sur l’heure UTC actuelle (DateTime.UtcNow()). Vous devez absolument vous assurer de fournir les valeurs appropriées pour empêcher la suppression involontaire de messages.
Remarque
L’opération de vidage peut entraîner une utilisation accrue du processeur, car elle implique plusieurs appels d’API. Pendant le vidage, les messages verrouillés ne sont pas éligibles à la suppression et restent dans l’entité.
Étapes suivantes
Pour explorer les fonctionnalités d’Azure Service Bus, essayez les exemples dans le langage de votre choix :
- Exemples de bibliothèque de client Azure Service Bus pour .NET (dernière version)
- Exemples de bibliothèque de client Azure Service Bus pour Java (dernière version)
- Exemples de bibliothèque de client Azure Service Bus pour Python
- Exemples de bibliothèque de client Azure Service Bus pour JavaScript
- Exemples de bibliothèque de client Azure Service Bus pour TypeScript
Exemples pour les anciennes bibliothèques de client .NET et Java :
- Exemples de bibliothèque de client Azure Service Bus pour .NET (version héritée) : Voir l’exemple Prefetch.
- Exemples de bibliothèque de client Azure Service Bus pour Java (version héritée) : Voir l’exemple Prefetch.
Le 30 septembre 2026, nous retirerons les bibliothèques WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus et com.microsoft.azure.servicebus du kit de développement logiciel (SDK) Azure Service Bus, qui ne sont pas conformes aux directives du kit de développement logiciel (SDK) Azure. Nous mettrons également fin à la prise en charge du protocole SBMP. Vous ne pourrez donc plus utiliser ce protocole après le 30 septembre 2026. Migrez vers les dernières bibliothèques du kit de développement logiciel (SDK) Azure, qui offre des correctifs de sécurité critiques et des fonctionnalités améliorées, avant cette date.
Bien que les anciennes bibliothèques puissent toujours être utilisées au-delà du 30 septembre 2026, elles ne seront plus prises en charge officiellement et mises à jour par Microsoft. Pour plus d’informations, consultez l’annonce concernant l’arrêt de la prise en charge.