Aracılığıyla paylaş


İleti erteleme

Bir kuyruk veya abonelik istemcisi işlemeye istekli olduğunu ancak özel koşullar nedeniyle işlemenin şu anda mümkün olmadığını belirten bir ileti aldığında, iletinin daha sonraki bir noktaya alınmasını "erteleme" seçeneği vardır. İleti kuyrukta veya abonelikte kalır, ancak ayrılmıştır.

Not

Ertelenen iletilerin süresi dolmaz ve bir istemci uygulaması API ve sıra numarası kullanarak bunları almaya çalışana kadar otomatik olarak bir teslim edilemeyen ileti kuyruğuna taşınır. Bu davranış, tasarım gereğidir. bir istemci ertelenen bir iletiyi almaya çalıştığında süresi dolmuş koşul olup olmadığını kontrol eder ve süresi dolmuşsa bir teslim edilemeyen ileti kuyruğuna taşınır. Süresi dolan bir ileti, yalnızca varlık (kuyruk veya abonelik) için teslim edilemeyen harf özelliği etkinleştirildiğinde bir yeniden yazma alt sırasına taşınır.

Örnek senaryolar

Erteleme, özellikle iş akışı işleme senaryoları için oluşturulan bir özelliktir. İş akışı çerçeveleri, belirli işlemlerin belirli bir sırada işlenmesini gerektirebilir. Alınan bazı iletilerin işlenmesini, diğer iletiler tarafından bilgilendirilen önceden belirlenmiş çalışma tamamlanana kadar ertelemeleri gerekebilir.

Basit bir örnek, bir dış ödeme sağlayıcısından gelen bir ödeme bildiriminin, eşleşen satın alma siparişi mağazadan karşılama sistemine yayılmadan önce sistemde göründüğü sipariş işleme dizisidir. Bu durumda, gönderim sistemi ödeme bildiriminin işlenmesini ilişkilendirilecek bir sipariş olana kadar erteleyebilir. Farklı kaynaklardan gelen iletilerin iş akışını ileriye doğru yönlendirdiği randevu senaryolarında gerçek zamanlı yürütme sırası doğru olabilir, ancak sonuçları yansıtan iletiler sıra dışı gelebilir.

Sonuç olarak, iletilerin varış sırasından işlenebileceği bir sıraya yeniden sıralanmasında erteleme yardımcı olur ve bu iletileri, işlemenin ertelenmesi gereken ileti deposunda güvenli bir şekilde bırakır.

İletiyi işlemeye yönelik belirli bir kaynak geçici olarak kullanılamadığından bir ileti işlenemediyse ancak ileti işleme geçici olarak askıya alınmamalıdır. Bu iletiyi birkaç dakika boyunca kenara koymanın bir yolu, zamanlanmış iletideki sıra numarasını birkaç dakika içinde postalanacak şekilde anımsamak ve zamanlanan ileti geldiğinde ertelenen iletiyi yeniden almaktır. İleti işleyicisi tüm işlemler için bir veritabanına bağımlıysa ve bu veritabanı geçici olarak kullanılamıyorsa erteleme kullanmamalı, veritabanı yeniden kullanılabilir olana kadar iletileri almayı tamamen askıya amalıdır.

Ertelenen iletileri alma

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. Ertelenmiş iletiler, bir uygulamanın izlemesini kaybederse iletiye göz atma veya 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ı.

Sonraki adımlar

Azure Service Bus özelliklerini keşfetmek için örnekleri istediğiniz dilde deneyin.

Eski .NET ve Java istemci kitaplıkları için örnekleri burada bulabilirsiniz:

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.