Condividi tramite


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à.

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 per le librerie client .NET e Java precedenti:

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.