Dayanıklılık İşlem Hatları
Stratejileri dayanıklılık işlem hatlarında birleştirin.
Dayanıklılık İşlem Hatları, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.
Stratejileri Birleştirme
Gerçek dayanıklılık genellikle birlikte çalışan birkaç strateji gerektirir. Polly v8, bu stratejileri ResiliencePipelineBuilder kullanarak tek bir dayanıklılık işlem hattında birleştirmenize olanak tanır.
ResiliencePipelineBuilder
Add... çağrılarını zincirler ve Build() ile tamamlamış olursunuz. Sonuç, çağrıları üzerinden çalıştırdığınız yeniden kullanılabilir ve iş parçacığı açısından güvenli bir ResiliencePipeline olur.
var pipeline = new ResiliencePipelineBuilder()
.AddRetry(new RetryStrategyOptions())
.AddTimeout(TimeSpan.FromSeconds(5))
.Build();Sıra Önemlidir
Stratejiler dıştan içe doğru çalışır: ilk eklenen strateji geri kalanını sarar. Yaygın ve doğru bir sıralama, deneme başına zaman aşımını yeniden denemenin içine, genel zaman aşımı ile devre kesiciyi ise bunların dışına yerleştirmektir.
var pipeline = new ResiliencePipelineBuilder()
.AddTimeout(TimeSpan.FromSeconds(10)) // overall
.AddRetry(new RetryStrategyOptions())
.AddCircuitBreaker(new CircuitBreakerStrategyOptions())
.AddTimeout(TimeSpan.FromSeconds(2)) // per attempt
.Build();Tür Bilgili İşlem Hatları
Stratejiler sonucu incelediğinde (örneğin bir geri dönüş veya sonuç tabanlı yeniden deneme), işlem hattının dönüş türünü bilmesi için genel ResiliencePipelineBuilder<T> kullanın.
var pipeline = new ResiliencePipelineBuilder<HttpResponseMessage>()
.AddRetry(new HttpRetryStrategyOptions())
.Build();Durumla Çalıştırma
Kapanımların bellek ayırmasını önlemek için durumu ExecuteAsync içine geçirin; Polly bu durumu geri çağrınıza iletir.
await pipeline.ExecuteAsync(
static async (state, token) => await state.CallAsync(token),
myService);ResiliencePipelineProvider
İşlem hatlarını satır içinde oluşturmak yerine adlandırılmış işlem hatlarını DI'ye kaydedin ve bunları ResiliencePipelineProvider aracılığıyla çözümleyin. Bu yaklaşım yapılandırmayı merkezileştirir.
builder.Services.AddResiliencePipeline("db", pipeline =>
{
pipeline.AddRetry(new RetryStrategyOptions())
.AddTimeout(TimeSpan.FromSeconds(3));
});Adlandırılmış Bir İşlem Hattını Çözümleme
ResiliencePipelineProvider<string> ekleyin ve ihtiyacınız olan her yerde işlem hattınızı anahtarına göre alın.
public class OrderService
{
private readonly ResiliencePipeline _pipeline;
public OrderService(ResiliencePipelineProvider<string> provider)
{
_pipeline = provider.GetPipeline("db");
}
}HttpClient İçin Dayanıklılık
AddResilienceHandler uzantısı, bir işlem hattını tür bilgili veya adlandırılmış HttpClient öğesine bağlar ve bu işlem hattını giden her isteğe uygular.
builder.Services.AddHttpClient<CatalogClient>()
.AddResilienceHandler("catalog", b =>
{
b.AddRetry(new HttpRetryStrategyOptions());
b.AddCircuitBreaker(new HttpCircuitBreakerStrategyOptions());
});Standart Dayanıklılık İşleyicisi
Microsoft, önerilen sırada makul yeniden deneme, devre kesici, zaman aşımı ve hız sınırlamayı bir araya getiren kapsamlı bir AddStandardResilienceHandler sunar.
builder.Services.AddHttpClient<CatalogClient>()
.AddStandardResilienceHandler();İşlem Hatları Yeniden Kullanılabilir ve Verimlidir
Bir işlem hattını bir kez oluşturun ve birçok çalıştırmada yeniden kullanın. Değişmez ve iş parçacığı açısından güvenli olduklarından onları paylaşmak hem güvenli hem de verimlidir.
Gözlemlenebilirlik Kancaları
Her strateji geri çağrılar sunar (OnRetry, OnOpened, OnTimeout, OnFallback) ve Polly, tam görünürlük için günlükleme ile ölçümlere bağlayabileceğiniz telemetri üretir.
Hızlı Kontrol
Dayanıklılık işlem hatılarını sınayın.
Özet
ResiliencePipelineBuilder, yeniden deneme, devre kesici, zaman aşımı ve geri dönüşü yeniden kullanılabilir tek bir işlem hattında birleştirir; dıştan içe doğru olan sıralama önemlidir. Sonuç farkındalığı olan stratejiler için genel oluşturucuyu kullanın, adlandırılmış işlem hatlarını AddResiliencePipeline ile kaydedin ve ResiliencePipelineProvider aracılığıyla çözümleyin. HTTP için AddResilienceHandler veya AddStandardResilienceHandler her isteği korur.
Sıkça Sorulan Sorular
“Dayanıklılık İşlem Hatları” dersi ücretsiz mi?
Evet — “Dayanıklılık İşlem Hatları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.
“Dayanıklılık İşlem Hatları” dersinde ne öğreneceğim?
Stratejileri dayanıklılık işlem hatlarında birleştirin. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C# Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Dayanıklılık İşlem Hatları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Yeniden Deneme İlkeleri
- Devre Kesici Kalıbı
- Zaman Aşımı ve Geri Dönüş İlkeleri
- Dayanıklılık İşlem Hatları