Procházení nebo náhled zpráv
Procházení zpráv nebo prohlížení zpráv umožňuje klientovi služby Service Bus vytvořit výčet všech zpráv ve frontě nebo odběru pro účely diagnostiky a ladění.
Operace Náhled ve frontě nebo odběru vrátí maximálně požadovaný počet zpráv. V následující tabulce jsou uvedeny typy zpráv, které vrací operace Náhled.
Typ zpráv | Zahrnutý? |
---|---|
Aktivní zprávy | Ano |
Nedoručené zprávy | No |
Uzamčené zprávy | Ano |
Odložené zprávy | Ano |
Zprávy s vypršenou platností | Může to být (před tím, než budou nedoručené) |
Plánované zprávy | Ano pro fronty. Ne pro předplatná |
Nedoručené zprávy
Pokud se chcete podívat na nedoručené zprávy fronty nebo odběru, měla by se operace náhledu spustit ve frontě nedoručených zpráv přidružených k frontě nebo odběru. Další informace najdete v tématu o přístupu k frontám nedoručených zpráv.
Zprávy s vypršenou platností
Zprávy s vypršenou platností můžou být zahrnuty do výsledků vrácených z operace Náhled. Spotřebované a prošlé zprávy se vyčistí asynchronním spuštěním uvolňování paměti. Tento krok nemusí nutně nastat okamžitě po vypršení platnosti zpráv. Proto může operace náhledu vrátit zprávy, jejichž platnost už vypršela. Tyto zprávy budou při příštím vyvolání operace příjmu ve frontě nebo odběru odebrány nebo nedoručené. Při pokusu o obnovení odložených zpráv z fronty mějte toto chování na paměti.
Zpráva s vypršenou platností už nemá nárok na pravidelné načítání žádným jiným způsobem, i když je vrácena náhledem. Vrácení těchto zpráv je záměrně, protože Náhled je diagnostický nástroj, který odráží aktuální stav protokolu.
Uzamčené zprávy
Náhled také vrátí zprávy, které byly uzamčeny a které právě zpracovávají ostatní příjemci. Vzhledem k tomu, že náhled vrátí odpojený snímek, stav uzamčení zprávy se nedá pozorovat u náhledových zpráv.
Odložené zprávy
Odložené zprávy zůstávají v hlavní frontě spolu se všemi ostatními aktivními zprávami (na rozdíl od zpráv s nedoručenými písmeny, které jsou v podkateře), ale nelze je přijímat pomocí běžných operací příjmu. Odložené zprávy je možné zjistit prostřednictvím procházení zpráv, pokud aplikace ztratí přehled o nich.
Pokud chcete načíst odloženou zprávu, je její vlastník zodpovědný za zapamatování pořadového čísla při jeho odvrácení. Každý příjemce, který zná pořadové číslo odložené zprávy, může později přijmout zprávu pomocí metod příjmu, které přebírají pořadové číslo jako parametr. Další informace o sekvenčních číslech naleznete v tématu Pořadí zpráv a časové razítka.
Náhled rozhraní API
Náhled funguje ve frontách, předplatných a jejich frontách nedoručených zpráv.
Při opakovaném vyvolání operace náhledu vyčíslí všechny zprávy ve frontě nebo odběru v pořadí od nejnižšího dostupného pořadového čísla na nejvyšší. Jedná se o pořadí, ve kterém byly zprávy vloženy do fronty, nikoli pořadí, ve kterém se můžou zprávy nakonec načíst.
Funkci SequenceNumber můžete také předat do operace náhledu. Používá se k určení, odkud začít nahlédnout. Následná volání operace náhledu můžete provést bez zadání parametru pro další výčet.
Maximální počet zpráv
Můžete zadat maximální počet zpráv, které má operace náhledu vrátit. Neexistuje ale žádný způsob, jak zaručit minimální velikost dávky. Počet vrácených zpráv závisí na několika faktorech, z nichž nejvýraznější je, jak rychle může síť streamovat zprávy klientovi.
Tady je příklad fragmentu kódu pro náhled všech zpráv pomocí sady .NET SDK. SequenceNumber
Dá se použít ke sledování poslední náhledové zprávy a zahájení procházení na další zprávě.
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);
}
Následující ukázkový výstup spočívá v náhledu fronty s 13 zprávami.
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
Související obsah
Vyzkoušejte ukázky v jazyce podle vašeho výběru a prozkoumejte funkce služby Azure Service Bus.
- Ukázky klientské knihovny služby Azure Service Bus pro .NET (nejnovější) – Odesílání a příjem zpráv
- Ukázky klientské knihovny služby Azure Service Bus pro Javu (nejnovější verze) - Prohlédnout si ukázku zprávy
- Ukázky klientské knihovny služby Azure Service Bus pro ukázku receive_peek.py Pythonu -
- Ukázky klientské knihovny služby Azure Service Bus pro ukázku browseMessages.js JavaScriptu -
- Ukázky klientské knihovny služby Azure Service Bus pro ukázku browseMessages.ts TypeScriptu -
Ukázky pro starší klientské knihovny .NET a Java najdete tady:
- Ukázky klientské knihovny služby Azure Service Bus pro .NET (starší verze) - procházení zpráv (náhled)
- Ukázky klientské knihovny služby Azure Service Bus pro ukázku procházení zpráv v Javě (starší verze) -
30. září 2026 vyřadíme knihovny sady SDK služby Azure Service Bus pro WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus a com.microsoft.azure.servicebus, které nevyhovují pokynům sady Azure SDK. Také ukončíme podporu protokolu SBMP, takže tento protokol už nebudete moct používat po 30. září 2026. Před tímto datem migrujte na nejnovější knihovny sady Azure SDK, které nabízejí důležité aktualizace zabezpečení a vylepšené funkce.
I když starší knihovny je možné používat i po 30. září 2026, nebudou už od Microsoftu dostávat oficiální podporu a aktualizace. Další informace najdete v oznámení o vyřazení podpory.