Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przeglądanie komunikatów lub podglądanie umożliwia klientowi usługi Service Bus przeglądanie wszystkich komunikatów w kolejce lub subskrypcji na potrzeby diagnostyki i debugowania.
Operacja Peek w kolejce lub subskrypcji zwraca najwyżej żądaną liczbę wiadomości. W poniższej tabeli przedstawiono typy komunikatów zwracanych przez operację Peek.
| Typ komunikatów | Dołączone? |
|---|---|
| Aktywne komunikaty | Tak |
| Komunikaty przeniesione do kolejki wiadomości utraconych | Nie |
| Zablokowane wiadomości | Tak |
| Odroczone wiadomości | Tak |
| Wygasłe komunikaty | Może to być (zanim zostaną one przeniesione do kolejki dead-letter) |
| Zaplanowane wiadomości | Tak dla kolejek. Nie dla subskrypcji |
Komunikaty przeniesione do kolejki wiadomości niedostarczonych
Aby zajrzeć do komunikatów przeniesionych do kolejki wiadomości niedostarczonych kolejki lub subskrypcji, należy uruchomić operację podglądu w kolejce wiadomości niedostarczonych skojarzonej z kolejką lub subskrypcją. Aby uzyskać więcej informacji, zobacz uzyskiwanie dostępu do kolejek dead letter.
Wygasłe komunikaty
Wygasłe komunikaty mogą zostać uwzględnione w wynikach zwróconych z operacji Podgląd. Zużyte i wygasłe komunikaty są czyszczone przez uruchomienie asynchronicznego „odśmiecania”. Ten krok może niekoniecznie wystąpić natychmiast po wygaśnięciu komunikatów. Dlatego operacja wglądu może zwracać komunikaty, które już wygasły. Te komunikaty zostaną usunięte lub przeniesione do kolejki wiadomości niedostarczonych po następnym wywołaniu operacji odbierania w kolejce lub subskrypcji. Należy pamiętać o tym zachowaniu podczas próby odzyskania odroczonych komunikatów z kolejki.
Wygasły komunikat nie kwalifikuje się już do regularnego pobierania za pomocą innych środków, nawet jeśli jest zwracany przez Peek. Zwracanie tych komunikatów jest zamierzone, ponieważ Peek to narzędzie diagnostyczne odzwierciedlające bieżący stan dziennika.
Zablokowane wiadomości
Zobacz również komunikaty, które zostały zablokowane i są obecnie przetwarzane przez innych odbiorców. Jednak ze względu na to, że funkcja Peek zwraca odłączoną migawkę, stan blokady komunikatu nie może być obserwowany w komunikatach pobranych za pomocą funkcji Peek.
Odroczone wiadomości
Odroczone komunikaty pozostają w głównej kolejce wraz ze wszystkimi innymi aktywnymi komunikatami (w przeciwieństwie do komunikatów dead-letter, które znajdują się w podkolejce), ale nie mogą być już odbierane przy użyciu zwykłych operacji odbierania. Komunikaty odroczone można odnaleźć za pośrednictwem przeglądania komunikatów, jeśli aplikacja utraci ich śledzenie.
Aby pobrać komunikat odroczony, jego właściciel jest odpowiedzialny za zapamiętanie numeru sekwencyjnego w trakcie jego odraczania. Każdy odbiorca, który zna numer sekwencji odroczonego komunikatu, może później odebrać komunikat przy użyciu metod odbierania, które przyjmują numer sekwencji jako parametr. Aby uzyskać więcej informacji na temat numerów sekwencji, zobacz Sekwencjonowanie komunikatów i znaczniki czasu.
Podejrzyj interfejsy API
Operacja Peek jest dostępna dla kolejek, subskrypcji i ich kolejek komunikatów o błędnym dostarczeniu.
Po wielokrotnym wywołaniu operacja podglądu wylicza wszystkie komunikaty w kolejce lub subskrypcji w kolejności od najniższego dostępnego numeru sekwencji do najwyższego. Jest to kolejność, w której komunikaty zostały umieszczone w kolejce, a nie kolejność, w której komunikaty mogą zostać ostatecznie pobrane.
Można również przekazać parametr SequenceNumber do operacji podglądu. Służy do określania, skąd zacząć zaglądać. Możesz wykonywać kolejne wywołania operacji podglądu bez określania parametru, aby kontynuować wyliczanie.
Maksymalna liczba komunikatów
Możesz określić maksymalną liczbę komunikatów, które mają zostać zwrócone przez operację podglądu. Nie ma jednak możliwości zagwarantowania minimalnego rozmiaru partii. Liczba zwracanych komunikatów zależy od kilku czynników, z których najważniejszym jest to, jak szybko sieć może przesyłać strumieniowo komunikaty do klienta.
Oto przykładowy fragment kodu do podejrzenia wszystkich komunikatów za pomocą zestawu SDK platformy .NET. Można SequenceNumber go użyć do śledzenia ostatnio podejrzanej wiadomości i rozpoczęcia przeglądania od następnej wiadomości.
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);
}
Poniższe przykładowe dane wyjściowe to wynik podglądu kolejki zawierającej 13 komunikatów.
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
Powiązane treści
Wypróbuj przykłady w wybranym języku, aby zapoznać się z funkcjami usługi Azure Service Bus.
- Przykłady biblioteki klienta usługi Azure Service Bus dla platformy .NET (najnowsze) — przykład wysyłania i odbierania komunikatów .
- Przykłady bibliotek klienta usługi Azure Service Bus dla języka Java (najnowsze) - Podejrzyj komunikat — przykład
- Przykłady biblioteki klienta usługi Azure Service Bus dla języka Python - receive_peek.py przykład
- Przykłady bibliotek klienta usługi Azure Service Bus dla języka JavaScript - browseMessages.js przykład
- Przykłady biblioteki klienta usługi Azure Service Bus dla języka TypeScript - browseMessages.ts przykład