Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Durable Functions, işlev uygulamanıza durum bilgisi olan düzenleme özellikleri ekleyen Azure Functions uzantısıdır. bir Durable Functions uygulaması, her biri belirli bir rol oynayan farklı Azure işlevlerinden oluşur: düzenleyici, etkinlik, varlık veya istemci. Bu roller, Durable Functions uzantısının sağladığı özelleştirilmiş trigger ve bağlama türlerine özel işlevlerdir.
Dayanıklı Görev SDK'ları, herhangi bir işlem platformunda durum bilgisi olan ve hataya dayanıklı uygulamalar oluşturmanıza olanak tanır. Uygulamanız düzenleyicileri, etkinlikleri ve varlıkları bir çalışana kaydettiğiniz sınıflar veya işlevler olarak tanımlar. Ayrı bir istemci API'si, düzenleme örneklerini başlatmanıza ve yönetmenize olanak tanır.
Aşağıdaki tabloda temel programlama bileşenleri ve rolleri özetlenmiştir:
| Bileşen | Rol | Tarafından tanımlanan |
|---|---|---|
| Orchestrator | İş akışı mantığını koordine eder | Düzenleme tetikleyicisi |
| Etkinlik | Tek bir işi gerçekleştirir | Etkinlik tetikleyicisi |
| Varlık | Küçük bir durumu yönetir | Varlık tetikleyicisi |
| Müşteri | Orkestrasyonları ve varlıkları başlatır ve yönetir | Dayanıklı istemci bağlaması |
| Bileşen | Rol | Tarafından tanımlanan |
|---|---|---|
| Orchestrator | İş akışı mantığını koordine eder | Çalışana kayıtlı bir sınıf veya işlev |
| Etkinlik | Tek bir işi gerçekleştirir | Çalışana kayıtlı bir sınıf veya işlev |
| Varlık | Küçük bir durumu yönetir | Çalışana kayıtlı bir sınıf |
| Müşteri | Orkestrasyonları ve varlıkları başlatır ve yönetir |
DurableTaskClient API (Uygulama Programlama Arayüzü) |
Düzenleyiciler
Düzenleyiciler iş akışını tanımlar: hangi eylemlerin, hangi sırayla ve sonuçların nasıl işleneceğini belirler. Döngüler, koşullular ve try/catch blokları gibi standart denetim akışı yapılarını kullanarak orchestrator mantığını normal kod olarak yazarsınız.
Düzenleyici birkaç tür görev zamanlayabilir:
- Çalışma yürütme etkinlikleri
- Daha küçük iş akışları oluşturmak için alt orkestrasyonlar
- Gecikmeler ve zaman aşımları için dayanıklı zamanlayıcılar
- Orkestrasyon dışından gelen sinyalleri beklemek için harici olaylar
Düzenleyiciler varlıklarla da etkileşimde bulunabilir.
Durable Functions’da orkestrasyon tetikleyici bağlaması kullanarak bir orkestratör tanımlarsınız. Tetikleyici, görevleri zamanlamak ve sonuçları almak için kullandığınız bir bağlam nesnesi sağlar.
Dayanıklı Görev SDK'larında, bir sınıf veya işlev uygulayıp Dayanıklı Görev çalışanına kaydederek bir düzenleyici tanımlarsınız. Orkestratör, görevleri zamanlamak ve sonuçları almak için kullandığınız bir bağlam nesnesini alır.
Önemli
Orchestrator kodu deterministik olmalıdır. Dayanıklı Görev çalışma zamanı orchestrator durumunu yeniden derlemek için olay kaynağını belirleme ve yeniden yürütmeyi kullanır, bu nedenle belirsiz olmayan kod hatalara veya kilitlenmelere neden olabilir. Ayrıntılı yönergeler için Orchestrator kod kısıtlamaları bölümüne bakın.
Yeniden yürütme, örnek kimliği ve hata işleme dahil olmak üzere orchestrator davranışına tam bir genel bakış için bkz Dayanıklı orchestrasyonlar.
Etkinlikler
Etkinlikler, dayanıklı bir düzenlemedeki temel çalışma birimidir. Her etkinlik genellikle web API'sini çağırma, veritabanına yazma veya sonuç hesaplama gibi tek bir görevi temsil eder. Düzenleyiciler (Orchestrator) gerçek işlerini yapmak için etkinlikleri çağırır.
Etkinlikler, orkestratörlerden önemli yollarla farklıdır:
- Kod kısıtlaması yok. Düzenleyicilerin belirleyici olması gerekir, ancak etkinlikler belirsiz veya uzun süre çalışan işlemler de dahil olmak üzere herhangi bir kodu çalıştırabilir.
- En az bir kez yürütme Çalışma zamanı, düzenleme sırasında her etkinliğin en az bir kez çalışmasını garanti eder. Etkinlik tamamlandıktan sonra ancak sonuç kaydedilmeden önce bir hata oluşursa, çalışma zamanı bunu yeniden çalıştırabilir.
- Tek sorumluluk. Her etkinlik bir giriş alır ve bir çıkış döndürür. Birden çok değer geçirmek için karmaşık bir tür veya koleksiyon kullanın.
Etkinlik tetikleyicisi bağlamasını kullanarak bir etkinlik işlevi tanımlarsınız. Tetikleyici, etkinliği planlarken yöneticinin ilettiği girdiyi sağlar.
Bir sınıf veya işlev uygulayıp Dayanıklı Görev çalışanına kaydederek bir etkinlik tanımlarsınız. Etkinlik, programlarken orkestratörün ilettiği girişi alır.
Uyarı
Etkinlikler yalnızca en az bir kez yürütmeyi garanti ettiğinden, etkinlik mantığınızı mümkün olduğunca etkili hale getirin. Örneğin, eklemeler yerine "upserts" kullanın veya yeni kaynaklar oluşturmadan önce var olan sonuçları denetleyin.
Etkinlikler seri olarak, paralel olarak veya her ikisinin birleşimiyle çalıştırılabilir.
Entities
Varlıklar, küçük, dayanıklı durum parçalarını yönetir. Her varlığın benzersiz bir kimliği ve iç durumunu okuyabilen veya güncelleştirebilen adlandırılmış işlemler kümesi vardır. Varlıklar, denetim akışı üzerinden örtük olarak değil, işlemler aracılığıyla durumu açıkça yönetmeleri bakımından düzenleyicilerden farklıdır. Bunlar aynı kod kısıtlamalarına sahip olmadığı için düzenleyicilerden de farklıdır. Varlık işlemleri, belirsiz veya uzun süre çalışan işlemler de dahil olmak üzere herhangi bir kodu çalıştırabilir.
Varlıklar için yaygın kullanımlar şunlardır:
- Birden çok kaynaktan veri toplama
- Dağıtılmış kilitleri veya semaforları uygulama
- Alışveriş sepetleri veya oyun oturumları gibi durum bilgisi olan nesneleri modelleme
Varlıklar işlemleri seri olarak çalıştırır: belirli bir varlık örneği için aynı anda yalnızca bir işlem çalıştırılır. Bu seri yürütme, açık kilitleme gerektirmeden eşzamanlılık çakışmalarını önler.
Varlık tetikleyici bağlamasını kullanarak bir varlık işlevi tanımlarsınız.
Uyarı
Varlık işlevleri .NET, JavaScript/TypeScript, Python ve Java desteklenir ancak PowerShell'de desteklenmez.
Bir sınıfı uygulayıp Dayanıklı Görev çalışanına kaydederek bir varlık tanımlarsınız.
Uyarı
Varlık desteği .NET, JavaScript/TypeScript ve Python SDK'larında kullanılabilir. Java SDK'sı şu anda varlıkları desteklememektedir.
Varlıkları tanımlama, çağırma ve yönetmeye yönelik eksiksiz bir kılavuz için bkz . Dayanıklı varlıklar.
Müşteri
İstemci bileşeni, orkestrasyonlar ve varlıklarla orkestrasyonun dışından etkileşim kurmanızı sağlar. Yaygın istemci işlemleri şunlardır:
- Yeni düzenleme örneklerini zamanlama
- Çalışan veya tamamlanan düzenlemelerin durumunu sorgulama
- Bekleyen orkestrasyonlara olayları tetikleme
- Orkestrasyon örneklerini askıya alma ve devam ettirme
- Orkestrasyon örneklerini sonlandırma
- Varlık işlemlerinin sinyallerini alma ve varlık durumunu okuma
Düzenleyici olmayan herhangi bir işlev, istemci işlevi olarak görev yapabilir. Bunu istemci yapan, dayanıklı istemci çıkış bağlamasının kullanılmasıdır. Örneğin, HTTP ile tetiklenen bir işlevden, kuyrukla tetiklenen bir işlevden veya zamanlayıcı ile tetiklenen bir işlevden düzenleme başlatabilirsiniz.
Dayanıklı istemci bağlaması, varlık işlemlerine sinyal verme ve varlık durumunu okuma gibi varlıklarla etkileşime yönelik API'ler de sağlar. Daha fazla bilgi için bkz. varlık istemci bağlaması.
Dayanıklı Görev SDK'larında, DurableTaskClient sınıfı aracılığıyla düzenlemeler ve varlıklarla etkileşim kurarsınız. Uygulama kodunuzda bir istemci örneği oluşturup düzenleme ve varlık örneklerini başlatmak, sorgulamak veya yönetmek için yöntemlerini çağırırsınız. İstemci, uygulamanızın herhangi bir bölümünden (HTTP uç noktası, arka plan hizmeti, konsol uygulaması veya başka bir kod) kullanılabilir.
Her dil için kod örnekleri de dahil olmak üzere tüm örnek yönetimi işlemleri hakkında ayrıntılı bilgi için bkz. Düzenleme örneklerini yönetme.
Sonraki Adımlar
İlk Dayanıklı İşlev uygulamanızı oluşturarak başlayın:
Dayanıklı Görev SDK'larını kullanmaya başlayın: