Delen via


Berichten in Batch verwijderen in Azure Service Bus (preview)

Azure Service Bus is een volledig beheerde berichtenbroker voor bedrijfsintegratie waarmee u berichten kunt verzenden en ontvangen tussen losgekoppelde toepassingen en services. Soms wilt u echter mogelijk berichten uit een wachtrij of abonnement verwijderen zonder ze te verwerken, bijvoorbeeld als ze verlopen, beschadigd of irrelevant zijn. In dit artikel leest u hoe u berichten in batches in Azure Service Bus verwijdert.

Scenario's voor batchverwijdering van berichten

Er zijn verschillende scenario's waarin u de functie batchgewijs verwijderen van berichten in Azure Service Bus wilt gebruiken. Sommige hiervan zijn:

  • Verlopen berichten: verwijder berichten die langer zijn dan de TTL-waarde (Time To Live) en bevinden zich in de wachtrij met dode letters.
  • Mislukte validatie of verwerking: verwijder berichten die de validatie- of verwerkingslogica hebben mislukt en bevinden zich in de wachtrij met dode letters.
  • Irrelevante berichten: verwijder berichten die niet langer relevant zijn voor uw toepassingslogica uit de actieve wachtrij.
  • Dubbele waarden of onjuiste inhoud verwerken: dubbele of onjuiste berichten uit de actieve wachtrij verwijderen.

Met behulp van de functie batchverplaatsingsberichten kunt u in één bewerking meerdere berichten uit een wachtrij of abonnement verwijderen in plaats van ze één voor één te verwijderen. Omdat het verwijderen aan de servicezijde wordt uitgevoerd, hoeft u de berichten niet te ontvangen voordat u ze verwijdert. Deze methode minimaliseert zowel het aantal serviceaanvragen als de netwerklatentie.

Belangrijk

Op dit moment wordt Batch-verwijdering niet ondersteund met gepartitioneerde entiteiten. U kunt maximaal 4000 berichten in een batch-verwijderoproep verwijderen. Batchverwijdering wordt op basis van best effort uitgevoerd en garandeert niet dat de exacte messageCount wordt verwijderd in één API-aanroep.

Berichten batchgewijs verwijderen in Service Bus

U kunt berichten verwijderen door DeleteMessagesAsync aan te roepen op service busontvangerobject. Aan de serverzijde DeleteMessagesAsync zijn twee parameters vereist: messageCount en beforeEnqueueTime.

  • messageCount: Het gewenste aantal berichten dat moet worden verwijderd. De service kan minder berichten verwijderen dan deze limiet.
  • beforeEnqueueTime: Een optionele DateTimeOffset, in UTC, die de cutoff-tijd vertegenwoordigt voor verwijdering. Alleen berichten die vóór deze tijd zijn verzonden, worden verwijderd.

Daarnaast kunt u PurgeMessagesAsync aanroepen om alle berichten van de entiteit op te schoonen.

Wanneer u Azure SDK's gebruikt om deze bewerkingen uit te voeren, wordt de parameter beforeEnqueueTime standaard ingesteld op de huidige UTC-tijd (DateTime.UtcNow()). Het is belangrijk om ervoor te zorgen dat u de juiste waarden opgeeft om onbedoelde verwijdering van berichten te voorkomen.

Notitie

De opschoningsbewerking kan leiden tot een verhoogd CPU-gebruik, omdat het meerdere API-aanroepen omvat. Tijdens het opschonen komen vergrendelde berichten niet in aanmerking voor verwijdering en blijven ze in de entiteit staan.

Volgende stappen

Als u Azure Service Bus-functies wilt verkennen, kunt u de voorbeelden in de taal van uw keuze uitproberen:

Voorbeelden voor de oudere .NET- en Java-clientbibliotheken:

Op 30 september 2026 gaan we de Azure Service Bus SDK-bibliotheken WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus en com.microsoft.azure.servicebus buiten gebruik stellen, die niet voldoen aan de Azure SDK-richtlijnen. We beëindigen ook de ondersteuning van het SBMP-protocol, zodat u dit protocol na 30 september 2026 niet meer kunt gebruiken. Migreer naar de nieuwste Azure SDK-bibliotheken, die vóór die datum essentiële beveiligingsupdates en verbeterde mogelijkheden bieden.

Hoewel de oudere bibliotheken nog steeds meer dan 30 september 2026 kunnen worden gebruikt, ontvangen ze geen officiële ondersteuning en updates meer van Microsoft. Zie de aankondiging van de buitengebruikstelling van de ondersteuning voor meer informatie.