Przeglądanie lub przeglądanie komunikatów
Przeglądanie komunikatów lub podglądanie umożliwia klientowi usługi Service Bus wyliczanie wszystkich komunikatów w kolejce lub subskrypcji na potrzeby diagnostyki i debugowania.
Operacja Podgląd w kolejce lub subskrypcji zwraca najwyżej żądaną liczbę komunikatów. W poniższej tabeli przedstawiono typy komunikatów zwracanych przez operację Podgląd.
Typ komunikatów | Zawarte? |
---|---|
Aktywne komunikaty | Tak |
Wiadomości z komunikatami utraconymi | Nie. |
Zablokowane komunikaty | Tak |
Komunikaty odroczone | Tak |
Wygasłe komunikaty | Może to być (zanim zostaną one utracone) |
Zaplanowane komunikaty | Tak w przypadku kolejek. Nie w przypadku subskrypcji |
Wiadomości z komunikatami utraconymi
Aby zajrzeć do utraconych komunikatów kolejki lub subskrypcji, należy uruchomić operację podglądu w kolejce utraconych wiadomości skojarzonych z kolejką lub subskrypcją. Aby uzyskać więcej informacji, zobacz Uzyskiwanie dostępu do kolejek utraconych wiadomości.
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 "odzyskiwania pamięci". 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 nieaktywne po wywołaniu operacji odbierania w kolejce lub subskrypcji przy następnym uruchomieniu. 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 zgodne z projektem, ponieważ Peek to narzędzie diagnostyczne odzwierciedlające bieżący stan dziennika.
Zablokowane komunikaty
Zobacz również komunikaty, które zostały zablokowane i są obecnie przetwarzane przez innych odbiorników. Jednak ze względu na to, że funkcja Peek zwraca odłączone migawki, stan blokady komunikatu nie może być obserwowany na podglądzie komunikatów.
Komunikaty odroczone
Odroczone komunikaty pozostają w głównej kolejce wraz ze wszystkimi innymi aktywnymi komunikatami (w przeciwieństwie do komunikatów utraconych, które działają w podqueue), 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 sekwencji podczas jego odchyłania. Każdy odbiornik, który zna numer sekwencji komunikatu odroczonego, może później odbierać 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.
Zobacz interfejsy API
Podgląd działa w kolejkach, subskrypcjach i kolejkach utraconych komunikatów.
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 w kolejce, a nie kolejność, w której komunikaty mogą zostać ostatecznie pobrane.
Można również przekazać element 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 do wyliczenia dalej.
Maksymalna liczba komunikatów
Możesz określić maksymalną liczbę komunikatów, które mają zostać zwrócone przez operację wglądu. Nie ma jednak możliwości zagwarantowania minimalnego rozmiaru partii. Liczba zwracanych komunikatów zależy od kilku czynników, które najbardziej wpływają na szybkość transmisji strumieniowej komunikatów przez sieć do klienta.
Oto przykładowy fragment kodu przedstawiający wszystkie komunikaty za pomocą zestawu SDK platformy .NET. Można SequenceNumber
go użyć do śledzenia ostatniego podglądu wiadomości i rozpoczęcia przeglądania w następnym komunikacie.
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 pochodzą z zaglądania do kolejki z 13 komunikatami w niej.
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ązana zawartość
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) - Zobacz przykład komunikatu
- 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
Znajdź przykłady dla starszych bibliotek klienckich .NET i Java tutaj:
- Przykłady biblioteki klienta usługi Azure Service Bus dla platformy .NET (starsza wersja) - Przykład przeglądania komunikatów (Zobacz)
- Przykłady biblioteki klienta usługi Azure Service Bus dla języka Java (starsza wersja) - Przykład przeglądania komunikatów.
30 września 2026 r. wycofamy biblioteki zestawu SDK usługi Azure Service Bus WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus i com.microsoft.azure.servicebus, które nie są zgodne z wytycznymi dotyczącymi zestawu Azure SDK. Zakończymy również obsługę protokołu SBMP, więc nie będzie można już używać tego protokołu po 30 września 2026 r. Przeprowadź migrację do najnowszych bibliotek zestawu Azure SDK, które oferują krytyczne aktualizacje zabezpieczeń i ulepszone możliwości przed tą datą.
Mimo że starsze biblioteki mogą być nadal używane poza 30 września 2026 r., nie będą już otrzymywać oficjalnej pomocy technicznej i aktualizacji od firmy Microsoft. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu pomocy technicznej.