Aracılığıyla paylaş


Azure Service Bus - İleti süre sonu (Yaşam Süresi)

İletideki yük veya iletinin alıcıya ilettiği komut veya sorgu, neredeyse her zaman bir tür uygulama düzeyi son kullanma tarihine tabidir. Böyle bir son tarihten sonra içerik artık teslim edilir veya istenen işlem yürütülür.

Kuyrukların ve konuların genellikle uygulamaların veya uygulama bölümlerinin kısmi çalıştırmaları bağlamında kullanıldığı geliştirme ve test ortamları için, bir sonraki test çalıştırmasının temiz başlayabilmesi için, zincirlenmiş test iletilerinin otomatik olarak çöp olarak toplanması da tercih edilir.

Not

Service Bus kavramlarını henüz bilmiyorsanız bkz . Service Bus kavramları ve Service Bus kuyrukları, konuları ve abonelikleri.

Herhangi bir iletinin süre sonu, göreli süreyi belirten yaşam süresi sistem özelliği ayarlanarak denetlenebilir. İleti varlığa sıralandığında süre sonu mutlak bir anlık duruma gelir. Bu sırada, expires-at-utc özelliği enqueued-time-utc + saat-yaşam değerini alır. Etkin olarak dinleyen istemci olmadığında aracılı iletideki yaşam süresi (TTL) ayarı zorunlu tutulmaz.

Not

Süresi dolmuş iletiler aracı tarafından hemen kaldırılamayabilir. Aracı, bir iletinin süresi dolduğunda varlığın etkin kullanımda olup olmadığına bağlı olarak bu iletilerin süresinin dolmasına karar verebilir. Sonuç olarak, müşteriler ileti süre sonu kullanırken yanlış bir ileti sayısı gözlemler ve hatta bir göz atma işlemi sırasında bu iletileri görebilir. Ancak, iletileri alırken süresi dolan ileti dahil edilmeyecektir.

Süre sonu(utc)anlık değerini geçtikten sonra iletiler alınamaz hale gelir. Süre sonu, şu anda teslim için kilitli olan iletileri etkilemez. Bu iletiler hala normal şekilde işlenir. Kilidin süresi dolarsa veya ileti bırakılırsa, süre sonu hemen geçerli olur. İleti kilit altındayken, uygulama süresi dolmuş bir iletiye sahip olabilir. Uygulamanın işlemeye devam etmeye istekli olup olmadığı veya iletiyi bırakmayı seçmesi uygulayıcıya bağlı.

Milisaniye veya saniye sırasına göre son derece düşük TTL, alıcı uygulamalar almadan önce iletilerin süresinin dolmasına neden olabilir. Uygulamanız için en yüksek TTL'yi düşünün.

Not

Zamanlanmış iletiler için, iletinin alınmak üzere kuyrukta gerçekleştirilmesini istediğiniz sıra saatini belirtirsiniz. İletinin Service Bus'a gönderilme zamanı, iletinin sıralandığı zamandan farklıdır. İletinin süre sonu, iletinin Service Bus'a gönderildiği zamana değil, sıralanan saate bağlıdır. Bu nedenle, utc'de süresi dolmaya devam eder ve saat + yaşam süresi sıralanır.

Örneğin, değerini 5 dakika ve UtcNowTimeToLive 10 dakika olarak ayarlarsanızScheduledEnqueueTimeUtc, iletinin süresi 5 + 10 = 15 dakika sonra dolar. İleti 5 dakika sonra kuyrukta gerçekleşir ve 10 dakikalık sayaç o tarihten sonra başlar.

Varlık düzeyi süre sonu

Bir kuyruğa veya konuya gönderilen tüm iletiler, varlık düzeyinde ayarlanan varsayılan süre sonu süresine tabidir. Ayrıca oluşturma sırasında portalda ayarlanabilir ve daha sonra ayarlanabilir. Varsayılan süre sonu, yaşam süresi açıkça ayarlı olmayan varlığa gönderilen tüm iletiler için kullanılır. Varsayılan süre sonu, yaşam süresi değeri için bir tavan olarak da çalışır. Yaşam süresi varsayılan değerden daha uzun süre sonu olan iletiler, sıraya alınmadan önce sessizce varsayılan ileti yaşam süresi değerine ayarlanır.

Not

  • Aracılı ileti için varsayılan yaşam süresi değeri, aksi belirtilmediği takdirde imzalı bir 64 bit tamsayı için mümkün olan en büyük değerdir.
  • Mesajlaşma varlıkları (kuyruklar ve konular) için varsayılan süre sonu, Service Bus standart ve premium katmanları için imzalı bir 64 bit tamsayı için de mümkün olan en büyük değerdir. Temel katman için varsayılan (en fazla) süre sonu 14 gündür.
  • Konu başlığı abonelikten daha küçük bir TTL belirtiyorsa, TTL konusu uygulanır.

Süresi dolan iletiler isteğe bağlı olarak bir teslim edilemeyen ileti kuyruğuna taşınabilir. Bu ayarı program aracılığıyla veya Azure portalını kullanarak yapılandırabilirsiniz. Seçenek devre dışı bırakılırsa süresi dolan iletiler bırakılır. Teslim edilemeyen ileti kuyruğuna taşınan süresi dolan iletiler, aracının kullanıcı özellikleri bölümünde depoladığı teslim edilemeyen neden özelliği değerlendirilerek diğer teslim edilemeyen iletilerden ayırt edilebilir.

İleti kilit altındayken sona ermeden korunursa ve varlıkta bayrak ayarlanırsa, kilit bırakıldığından veya süresi dolduğunda ileti teslim edilemeyen ileti kuyruğuna taşınır. Ancak, ileti başarıyla tamamlanırsa taşınmaz ve ardından nominal süre sonuna rağmen uygulamanın başarıyla işlendiğini varsayar. İleti kilitleri ve düzenleme hakkında daha fazla bilgi için bkz . İleti aktarımları, kilitler ve kapatma.

Süresi dolduğunda yaşam süresi ile otomatik (ve işlemsel) teslimsiz yazmanın birleşimi, son tarihe ulaşıldığında bir işleyiciye veya son tarih altındaki bir işleyici grubuna verilen işin işlenmek üzere alınıp alınmayacağı konusunda güven oluşturmaya yönelik değerli bir araçtır.

Örneğin, işleri ölçek kısıtlı bir arka uçta güvenilir bir şekilde yürütmesi gereken ve zaman zaman trafik artışlarıyla karşılaşan veya bu arka ucun kullanılabilirlik bölümlerine karşı yalıtılmış olmak isteyen bir web sitesi düşünün. Normal durumda, gönderilen kullanıcı verilerinin sunucu tarafı işleyicisi bilgileri kuyruğa gönderir ve ardından işlemin başarılı bir şekilde yanıt kuyruğuna işlenmesini onaylayan bir yanıt alır. Bir trafik artışı varsa ve arka uç işleyicisi kapsam öğelerini zamanında işleyemiyorsa, süresi dolan işler teslim edilemeyen ileti kuyruğunda döndürülür. Etkileşimli kullanıcıya, istenen işlemin normalden biraz daha uzun sürdüğü bildirilebilir ve ardından istek, son işleme sonucunun kullanıcıya e-postayla gönderildiği bir işleme yolu için farklı bir kuyruğa konulabilir.

Geçici varlıklar

Service Bus kuyrukları, konuları ve abonelikleri, belirli bir süre kullanılmadığında otomatik olarak kaldırılan geçici varlıklar olarak oluşturulabilir.

Otomatik temizleme, test veya hata ayıklama çalıştırmasının kesintiye uğraması nedeniyle varlıkların dinamik olarak oluşturulduğu ve kullanımdan sonra temizlenmediği geliştirme ve test senaryolarında kullanışlıdır. Bir uygulama yanıt kuyruğu gibi dinamik varlıklar oluşturduğunda, yanıtları bir web sunucusu işlemine geri almak için veya nesne örneği kaybolduğunda bu varlıkları güvenilir bir şekilde temizlemenin zor olduğu nispeten kısa ömürlü başka bir nesnede de kullanışlıdır.

Özellik, varlıkta idle özelliğinde otomatik silme özelliği kullanılarak etkinleştirilir. Bu özellik, bir varlığın otomatik olarak silinmeden önce boşta (kullanılmamış) olması gereken süreye ayarlanır. Bu özelliğin en düşük değeri 5 dakikadır.

Önemli

Azure Resource Manager kilit düzeyinin CanNotDeletead alanında veya daha yüksek bir düzeyde olarak ayarlanması, ile AutoDeleteOnIdle varlıkların silinmesini engellemez. Varlığın silinmesini istemiyorsanız özelliğini olarak DataTime.MaxValueayarlayınAutoDeleteOnIdle.

Boşta kalma durumu

Varlıkların (kuyruklar, konular ve abonelikler) boşta olduğu düşünülenler şunlardır:

Entity Boşta olarak kabul edilenler
Sıra
  • Gönderme yok
  • Alma yok
  • Kuyrukta güncelleştirme yok
  • Zamanlanmış ileti yok
  • Göz atma/göz atma yok
Konu
  • Gönderme yok
  • Konu başlığında güncelleştirme yok
  • Zamanlanmış ileti yok
  • Konunun aboneliklerinde işlem yok (sonraki satıra bakın)
Abonelik
  • Alma yok
  • Abonelikte güncelleştirme yok
  • Aboneliğe yeni kural eklenmedi
  • Göz atma/göz atma yok

Önemli

Kuyrukta veya abonelikte otomatik iletme kurulumunuz varsa, bu, kuyrukta veya abonelikte alıcı peform alma işlemiyle eşdeğerdir ve bunlar boşta olmaz.

SDK

Sonraki adımlar

Service Bus mesajlaşması hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: