Messaggi di eliminazione batch in bus di servizio di Azure (anteprima)
bus di servizio di Azure è un broker di messaggi di integrazione aziendale completamente gestito che consente di inviare e ricevere messaggi tra applicazioni e servizi disaccoppiati. Tuttavia, a volte è possibile eliminare messaggi da una coda o una sottoscrizione senza elaborarli, ad esempio se sono scaduti, danneggiati o irrilevanti. Questo articolo illustra come eliminare i messaggi in batch in bus di servizio di Azure.
Scenari per l'eliminazione batch di messaggi
Esistono diversi scenari in cui è possibile usare la funzionalità di eliminazione batch dei messaggi in bus di servizio di Azure. Eccone alcuni:
- Messaggi scaduti: elimina i messaggi che superano il valore TTL (Time To Live) e si trovano nella coda dei messaggi non recapitabili.
- Convalida o elaborazione non riuscita: rimuovere i messaggi che non hanno superato la convalida o la logica di elaborazione e si trovano nella coda dei messaggi non recapitabili.
- Messaggi irrilevanti: eliminare i messaggi non più rilevanti per la logica dell'applicazione dalla coda attiva.
- Gestione di duplicati o contenuto non corretto: rimuovere messaggi duplicati o non corretti dalla coda attiva.
Usando la funzionalità di eliminazione batch dei messaggi, è possibile eliminare più messaggi da una coda o da una sottoscrizione in un'unica operazione, anziché eliminarli uno alla volta. Poiché l'eliminazione viene eseguita sul lato servizio, non è necessario ricevere i messaggi prima di eliminarli. Questo metodo riduce al minimo sia il numero di richieste di servizio che la latenza di rete.
Importante
Attualmente, l'eliminazione batch non è supportata con entità partizionate. È possibile eliminare un massimo di 4000 messaggi in una chiamata di eliminazione batch. L'eliminazione batch viene eseguita in modo ottimale e non garantisce che l'esatto messageCount venga eliminato in una singola chiamata API.
Come eseguire l'eliminazione in batch dei messaggi in bus di servizio
È possibile eliminare i messaggi chiamando DeleteMessagesAsync su bus di servizio oggetto Receiver. Sul lato server sono DeleteMessagesAsync
necessari due parametri: messageCount
e beforeEnqueueTime
.
messageCount
: numero desiderato di messaggi da eliminare. Il servizio potrebbe eliminare un numero inferiore di messaggi rispetto a questo limite.beforeEnqueueTime
: valore DateTimeOffset facoltativo, in formato UTC, che rappresenta il tempo di cutoff per l'eliminazione. Vengono eliminati solo i messaggi accodati prima dell'eliminazione.
Inoltre, è possibile chiamare PurgeMessagesAsync per eliminare tutti i messaggi dall'entità.
Con il portale di Azure
È anche possibile eliminare i messaggi dall'entità usando bus di servizio Explorer disponibile in portale di Azure. È possibile seguire questa procedura per ripulire i messaggi:
- Passare al pannello "bus di servizio Explorer" nell'entità da cui si vogliono eliminare i messaggi.
- Scegliere "Modalità di ricezione" nell'elenco a discesa bus di servizio Explorer.
- Fare clic sull'opzione Ripulisci messaggi come illustrato nello snapshot.
- Verrà visualizzata un'altra finestra di dialogo, immettere "ripulitura" per eseguire l'operazione di eliminazione dei messaggi.
Quando si usano gli SDK di Azure per eseguire queste operazioni, per impostazione predefinita il parametro beforeEnqueueTime è l'ora UTC corrente (DateTime.UtcNow()). È importante assicurarsi di fornire i valori corretti per impedire l'eliminazione imprevista dei messaggi.
Nota
L'operazione di eliminazione potrebbe comportare un aumento dell'utilizzo della CPU perché comporta più chiamate API. Durante l'eliminazione, i messaggi bloccati non sono idonei per la rimozione e rimarranno nell'entità.
Passaggi successivi
Per esplorare bus di servizio di Azure funzionalità, provare gli esempi nel linguaggio preferito:
- Esempi di libreria client del bus di servizio di Azure per .NET (versione più recente)
- Esempi di libreria client del bus di servizio di Azure per Java (versione più recente)
- Libreria client del bus di servizio di Azure per Python
- Esempi di libreria client del bus di servizio di Azure per JavaScript
- Esempi di libreria client del bus di servizio di Azure per TypeScript
Esempi per le librerie client .NET e Java precedenti:
- Esempi di libreria client del bus di servizio di Azure per .NET (legacy) - Vedere l'esempio di Prelettura .
- Esempi di libreria client del bus di servizio di Azure per Java (legacy): vedere l'esempio di Prelettura.
Il 30 settembre 2026 verranno ritirate le librerie dell'SDK del bus di servizio di Azure WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus e com.microsoft.azure.servicebus, che non sono conformi alle linee guida di Azure SDK. Verrà terminato anche il supporto del protocollo SBMP, quindi non sarà più possibile usare questo protocollo dopo il 30 settembre 2026. Eseguire la migrazione alle librerie più recenti di Azure SDK, che offrono aggiornamenti critici della sicurezza e funzionalità migliorate, prima di tale data.
Anche se le librerie precedenti possono ancora essere usate oltre il 30 settembre 2026, non riceveranno più il supporto e gli aggiornamenti ufficiali da Microsoft. Per altre informazioni, vedere l'annuncio del ritiro del supporto.