Bläddra eller granska meddelanden

Med meddelandebläddring, eller genom att titta på, kan en Service Bus-klient räkna upp alla meddelanden i en kö eller en prenumeration i diagnostik- och felsökningssyfte.

Peek-åtgärden i en kö eller en prenumeration returnerar högst det begärda antalet meddelanden. I följande tabell visas de typer av meddelanden som returneras av peek-åtgärden.

Typ av meddelanden Ingår?
Aktiva meddelanden Ja
Meddelanden med obeställbara bokstäver Nej
Låsta meddelanden Ja
Uppskjutna meddelanden Ja
Meddelanden som har upphört att gälla Kan vara (innan de är obeställbara)
Schemalagda meddelanden Ja för köer. Nej för prenumerationer

Meddelanden med obeställbara bokstäver

Om du vill titta på meddelanden med obeställbara bokstäver i en kö eller prenumeration ska granskningsåtgärden köras i kön med obeställbara meddelanden som är associerad med kön eller prenumerationen. Mer information finns i komma åt köer med obeställbara meddelanden.

Meddelanden som har upphört att gälla

Meddelanden som har upphört att gälla kan inkluderas i resultaten som returneras från peek-åtgärden. Förbrukade och utgångna meddelanden rensas av en asynkron "skräpinsamling"-körning. Det här steget kanske inte nödvändigtvis inträffar omedelbart efter att meddelanden har upphört att gälla. Därför kan en granskningsåtgärd returnera meddelanden som redan har upphört att gälla. Dessa meddelanden tas bort eller får obeställbara meddelanden när en mottagningsåtgärd anropas i kön eller prenumerationen nästa gång. Tänk på det här beteendet när du försöker återställa uppskjutna meddelanden från kön.

Ett meddelande som har upphört att gälla är inte längre berättigat till regelbunden hämtning på något annat sätt, även när det returneras av Peek. Att returnera dessa meddelanden är avsiktligt eftersom Peek är ett diagnostikverktyg som återspeglar loggens aktuella tillstånd.

Låsta meddelanden

Peek returnerar också meddelanden som har låsts och som för närvarande bearbetas av andra mottagare. Men eftersom Peek returnerar en frånkopplad ögonblicksbild går det inte att observera låstillståndet för ett meddelande på övertittade meddelanden.

Uppskjutna meddelanden

Uppskjutna meddelanden finns kvar i huvudkön tillsammans med alla andra aktiva meddelanden (till skillnad från meddelanden med obeställbara meddelanden som finns i en underfråga), men de kan inte längre tas emot med hjälp av de vanliga mottagningsåtgärderna. Uppskjutna meddelanden kan identifieras via meddelandebläddring om ett program förlorar kontrollen över dem.

För att hämta ett uppskjutet meddelande ansvarar ägaren för att komma ihåg sekvensnumret när det defersar det. En mottagare som känner till sekvensnumret för ett uppskjutet meddelande kan senare ta emot meddelandet med hjälp av mottagningsmetoder som tar sekvensnumret som en parameter. Mer information om sekvensnummer finns i Meddelandesekvensering och tidsstämplar.

Granska API:er

Peek fungerar på köer, prenumerationer och deras köer med obeställbara meddelanden.

När den anropas upprepade gånger räknas alla meddelanden i kön eller prenumerationen upp i ordning från det lägsta tillgängliga sekvensnumret till det högsta. Det är i den ordning meddelandena har angetts, inte i vilken ordning meddelanden så småningom kan hämtas.

Du kan också skicka en SequenceNumber till en tittåtgärd. Den används för att avgöra var du ska börja titta från. Du kan göra efterföljande anrop till granskningsåtgärden utan att ange parametern för att räkna upp ytterligare.

Maximalt antal meddelanden

Du kan ange det maximala antalet meddelanden som du vill att granskningsåtgärden ska returnera. Men det finns inget sätt att garantera en minsta storlek för batchen. Antalet returnerade meddelanden beror på flera faktorer som den mest effektfulla är hur snabbt nätverket kan strömma meddelanden till klienten. 

Här är ett exempelfragment för att granska alla meddelanden med Python Service Bus SDK. sequence_number​ Kan användas för att spåra det senast kikade meddelandet och börja bläddra i nästa meddelande.

using Azure.Messaging.ServiceBus;

// Create a Service Bus client for your namespace
ServiceBusClient client = new ServiceBusClient("NAMESPACECONNECTIONSTRING");

// Create Service Bus receiver for your queue in the namespace
ServiceBusReceiver receiver = client.CreateReceiver("QUEUENAME");

// Peek operation with max count set to 5
var peekedMessages = await receiver.PeekMessagesAsync(maxMessages: 5);

// Keep receiving while there are messages in the queue
while (peekedMessages.Count > 0)
{
    int counter = 0; // To get the sequence number of the last peeked message
    int countPeekedMessages = peekedMessages.Count;

    if (countPeekedMessages > 0)
    { 
        // For each peeked message, print the message body
        foreach (ServiceBusReceivedMessage msg in peekedMessages)
        {
            Console.WriteLine(msg.Body);
            counter++;
        }
        Console.WriteLine("Peek round complete");
        Console.WriteLine("");
    }

    // Start receiving from the message after the last one
    var fromSeqNum = peekedMessages[counter-1].SequenceNumber + 1;
    peekedMessages = await receiver.PeekMessagesAsync(maxMessages: 5, fromSequenceNumber: fromSeqNum);
}

Följande exempelutdata är från att titta på en kö med 13 meddelanden i den.

Message 1
Message 2
Message 3
Message 4
Message 5
Peek round complete

Message 6
Message 7
Message 8
Message 9
Message 10
Peek round complete

Message 11
Message 12
Message 13
Peek round complete

Prova exemplen på det språk du väljer för att utforska Azure Service Bus-funktioner.

Hitta exempel för de äldre .NET- och Java-klientbiblioteken här:

Den 30 september 2026 drar vi tillbaka Azure Service Bus SDK-biblioteken WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus och com.microsoft.azure.servicebus, som inte följer Riktlinjerna för Azure SDK. Vi kommer också att avsluta stödet för SBMP-protokollet, så du kommer inte längre att kunna använda det här protokollet efter den 30 september 2026. Migrera till de senaste Azure SDK-biblioteken, som erbjuder kritiska säkerhetsuppdateringar och förbättrade funktioner, före det datumet.

Även om de äldre biblioteken fortfarande kan användas efter den 30 september 2026 får de inte längre officiell support och uppdateringar från Microsoft. Mer information finns i meddelandet om supportavgång.