İletilere göz atma veya göz atma
İleti gözatma veya göz atma, tanılama ve hata ayıklama amacıyla Service Bus istemcisinin kuyruktaki veya abonelikteki tüm iletileri listelemesini sağlar.
Kuyrukta veya abonelikte Göz atma işlemi en fazla istenen ileti sayısını döndürür. Aşağıdaki tabloda, Göz atma işlemi tarafından döndürülen ileti türleri gösterilmektedir.
İleti türü | Dahil? |
---|---|
Etkin iletiler | Yes |
Teslim edilemeyen iletiler | Hayır |
Kilitli iletiler | Yes |
Ertelenen iletiler | Yes |
Süresi dolan iletiler | Olabilir (bunlar teslim edilmeden önce) |
Zamanlanmış iletiler | Kuyruklar için evet. Abonelikler için hayır |
Teslim edilemeyen iletiler
Bir kuyruğun veya aboneliğin teslim edilemeyen iletilerine göz atmak için, göz atma işlemi kuyruk veya abonelikle ilişkili teslim edilemeyen ileti kuyruğunda çalıştırılmalıdır. Daha fazla bilgi için bkz . Teslim edilemeyen ileti kuyruklarına erişme.
Süresi dolan iletiler
Süresi dolan iletiler, Göz atma işleminden döndürülen sonuçlara eklenebilir. Tüketilen ve süresi dolan iletiler, zaman uyumsuz bir "çöp toplama" çalıştırması tarafından temizlenir. bu adım, iletilerin süresi dolduktan hemen sonra gerçekleşmeyebilir. Bu nedenle, bir göz atma işlemi süresi dolmuş iletileri döndürebilir. Bir sonraki sefer kuyrukta veya abonelikte bir alma işlemi çağrıldığında bu iletiler kaldırılır veya teslim alınmaz. Kuyruktan ertelenen iletileri kurtarmaya çalışırken bu davranışı göz önünde bulundurun.
Süresi dolmuş bir ileti, Peek tarafından döndürülürken bile artık başka bir yolla normal alma için uygun değildir. Göz atma, günlüğün geçerli durumunu yansıtan bir tanılama aracı olduğundan, bu iletileri döndürmek tasarım gereğidir.
Kilitli iletiler
Göz atma, kilitli olan ve şu anda diğer alıcılar tarafından işlenen iletileri de döndürür. Ancak, Göz atma bağlantısı kesilmiş bir anlık görüntü döndürdüğünden, bir iletinin kilit durumu gözlenen iletilerde gözlemlenemez.
Ertelenen iletiler
Ertelenen iletiler diğer tüm etkin iletilerle birlikte ana kuyrukta kalır (bir alt sorguda yer alan teslim edilemeyen iletilerden farklı olarak), ancak bunlar artık normal alma işlemleri kullanılarak alınamıyor. Ertelenen iletiler, bir uygulama bunların izini kaybederse iletiye göz atma yoluyla bulunabilir.
Ertelenen bir iletiyi almak için, sahibi, dizi numarasını erteledikçe hatırlamakla sorumludur. Ertelenen iletinin sıra numarasını bilen herhangi bir alıcı, daha sonra sıra numarasını parametre olarak alan alma yöntemlerini kullanarak iletiyi alabilir. Sıra numaraları hakkında daha fazla bilgi için bkz . İleti sıralama ve zaman damgaları.
API'lere göz atma
Göz atma, kuyruklarda, aboneliklerde ve bunların teslim edilemeyen kuyruklarında çalışır.
Tekrar tekrar çağrıldığında, göz atma işlemi kuyruktaki veya abonelikteki tüm iletileri kullanılabilir en düşük sıra numarasından en yükseğe sıralı olarak numaralandırır. İletilerin sıralanma sırasıdır, iletilerin alınabileceği sıra değildir.
Bir SequenceNumber değerini bir göz atma işlemine de geçirebilirsiniz. Nereden göz atabileceğinizi belirlemek için kullanılır. Daha fazla numaralandırılacak parametreyi belirtmeden göz atma işlemine sonraki çağrılar yapabilirsiniz.
İleti sayısı üst sınırı
Göz atma işleminin döndürmesini istediğiniz ileti sayısı üst sınırını belirtebilirsiniz. Ancak, toplu iş için en düşük boyutu garanti etmenin bir yolu yoktur. Döndürülen iletilerin sayısı, ağın istemciye iletileri ne kadar hızlı akışla aktarabileceği konusunda en etkili olan çeşitli faktörlere bağlıdır.
.NET SDK'sı ile tüm iletilere göz atmak için örnek bir kod parçacığı aşağıda verilmiştır. , SequenceNumber
son göz atılan iletiyi izlemek ve sonraki iletiye göz atmaya başlamak için kullanılabilir.
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);
}
Aşağıdaki örnek çıkış, içinde 13 ileti bulunan bir kuyruğa göz atma işlemidir.
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
İlgili içerik
Azure Service Bus özelliklerini keşfetmek için örnekleri istediğiniz dilde deneyin.
- .NET için Azure Service Bus istemci kitaplığı örnekleri (en son) - İleti gönderme ve alma örneği.
- Java için Azure Service Bus istemci kitaplığı örnekleri (en son) - İleti örneğine göz atma
- Python - receive_peek.py örneği için Azure Service Bus istemci kitaplığı örnekleri
- JavaScript - için Azure Service Bus istemci kitaplığı örnekleri browseMessages.js örneği
- TypeScript - browseMessages.ts örneği için Azure Service Bus istemci kitaplığı örnekleri
Eski .NET ve Java istemci kitaplıkları için örnekleri burada bulabilirsiniz:
- .NET (eski) - İleti Gözatma (Göz Atma) örneği için Azure Service Bus istemci kitaplığı örnekleri
- Java için Azure Service Bus istemci kitaplığı örnekleri (eski) - İleti Göz atma örneği.
30 Eylül 2026'da Azure SDK yönergelerine uymayan WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus ve com.microsoft.azure.servicebus Azure Service Bus SDK kitaplıklarını kullanımdan kaldıracağız. Ayrıca SBMP protokolünün desteğini de sonlandıracağız, bu nedenle 30 Eylül 2026'da bu protokolü artık kullanamayacaksınız. Bu tarihten önce kritik güvenlik güncelleştirmeleri ve geliştirilmiş özellikler sunan en son Azure SDK kitaplıklarına geçiş yapın.
Eski kitaplıklar 30 Eylül 2026'dan sonra da kullanılabilir olsa da artık Microsoft'tan resmi destek ve güncelleştirmeler almayacaktır. Daha fazla bilgi için bkz . destek kullanımdan kaldırma duyurusu.