Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Berichten bladeren, of peeken, stelt een Service Bus-client in staat alle berichten in een wachtrij of een abonnement op te sommen voor diagnostische en foutopsporingsdoeleinden.
De Peek-bewerking in een wachtrij of een abonnement retourneert maximaal het aangevraagde aantal berichten. In de volgende tabel ziet u de typen berichten die worden geretourneerd door de bewerking Peek.
| Soort berichten | Inbegrepen? |
|---|---|
| Actieve berichten | Ja |
| Onbestelbare berichten | Nee |
| Vergrendelde berichten | Ja |
| Uitgestelde berichten | Ja |
| Verlopen berichten | Kan zijn (voordat ze naar de dead-letter queue worden verplaatst) |
| Geplande berichten | Ja voor wachtrijen. Nee voor abonnementen |
Onbestelbare berichten
Als u dead-letterberichten van een wachtrij of abonnement wilt bekijken, moet de peekbewerking worden uitgevoerd op de wachtrij met dode letters die is gekoppeld aan de wachtrij of het abonnement. Zie voor meer informatie toegang tot dead-letterqueues.
Verlopen berichten
Verlopen berichten kunnen worden opgenomen in de resultaten die zijn geretourneerd door de bewerking Peek. Verwerkte en verlopen berichten worden opgeschoond door een asynchrone 'garbage collection'-run. Deze stap vindt mogelijk niet direct plaats nadat berichten zijn verlopen. Daarom kan een peekbewerking berichten retourneren die al zijn verlopen. Deze berichten worden verwijderd of naar de dead-letter queue verplaatst wanneer de volgende keer een ontvangstbewerking op de wachtrij of het abonnement wordt uitgevoerd. Houd rekening met dit gedrag bij het ophalen van uitgestelde berichten uit de wachtrij.
Een verlopen bericht komt niet meer in aanmerking voor regulier ophalen op een andere manier, zelfs niet wanneer het wordt geretourneerd door Peek. Het retourneren van deze berichten is zoals ontworpen omdat Peek een diagnostisch hulpprogramma is dat de huidige status van het logboek weergeeft.
Vergrendelde berichten
Peek retourneert ook berichten die zijn vergrendeld en die momenteel door andere ontvangers worden verwerkt. Omdat Peek echter een niet-verbonden momentopname retourneert, kan de vergrendelingsstatus van een bericht niet worden waargenomen bij gepeekte berichten.
Uitgestelde berichten
Uitgestelde berichten blijven in de hoofdwachtrij, samen met alle andere actieve berichten (in tegenstelling tot berichten in een subqueue), maar ze kunnen niet meer worden ontvangen met behulp van de normale ontvangstbewerkingen. Uitgestelde berichten kunnen worden gedetecteerd via het doorbladeren van berichten als een toepassing deze niet meer bijhoudt.
Als u een uitgesteld bericht wilt ophalen, is de eigenaar ervan verantwoordelijk voor het onthouden van het volgnummer wanneer die het uitstelt. Elke ontvanger die het volgnummer van een uitgesteld bericht kent, kan het bericht later ontvangen met behulp van ontvangstmethoden die het volgnummer als parameter gebruiken. Zie Berichtvolgorde en tijdstempels voor meer informatie over volgnummers.
API's weergeven
Peek werkt met wachtrijen, abonnementen en de wachtrijen met dode letters daarvan.
Wanneer de peek-bewerking herhaaldelijk wordt aangeroepen, worden alle berichten in de wachtrij of het abonnement opgesomd, in volgorde, van het laagste beschikbare volgnummer naar het hoogste. Het is de volgorde waarin berichten in de wachtrij zijn geplaatst, niet de volgorde waarin berichten uiteindelijk kunnen worden opgehaald.
U kunt ook een SequenceNumber doorgeven aan een peek-bewerking. Het wordt gebruikt om te bepalen waar u moet previewen. U kunt vervolgende aanroepen van de peek-bewerking doen zonder de parameter op te geven om verder op te sommen.
Maximum aantal berichten
U kunt het maximum aantal berichten opgeven dat de peekbewerking moet retourneren. Maar er is geen manier om een minimale grootte voor de batch te garanderen. Het aantal geretourneerde berichten is afhankelijk van verschillende factoren waarvan de meest impactvolle is hoe snel het netwerk berichten naar de client kan streamen.
Hier volgt een voorbeeldfragment voor het bekijken van alle berichten met de .NET SDK. De SequenceNumber kan worden gebruikt om het laatst gepeekte bericht bij te houden en te beginnen met bladeren bij het volgende bericht.
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);
}
De volgende voorbeelduitvoer is afkomstig van het bekijken van een wachtrij met 13 berichten erin.
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
Gerelateerde inhoud
Probeer de voorbeelden in de taal van uw keuze om Azure Service Bus-functies te verkennen.
- Voorbeelden van Azure Service Bus-clientbibliotheek voor .NET (nieuwste versie) - - Verzenden en ontvangen van berichten voorbeeld.
- Voorbeelden van Azure Service Bus-clientbibliotheek voor Java (nieuwste) - Een voorbeeld van een bericht bekijken voorbeeld
- Voorbeelden van Azure Service Bus-clientbibliotheek voor Python - receive_peek.py voorbeeld
- Voorbeelden van de Azure Service Bus-clientbibliotheek voor JavaScript - browseMessages.js voorbeeld
- Voorbeelden van Azure Service Bus-clientbibliotheek voor TypeScript - browseMessages.ts-voorbeeld