Ana içeriğe geç

Task (Görev) Belgesi

Görevler (Tasks), iş akışı çalışma zamanında belirli işlemleri gerçekleştiren bağımsız ve yeniden kullanılabilir bileşenlerdir. Her görev kendi özel amacına göre farklı türlerde tanımlanabilir ve iş akışının farklı noktalarında çalıştırılabilir.

Re-usable Yapı

Görevler bağımsız bir iş akışı olarak saklanır. Kullanılacakları noktaya referans olarak tanımlanırlar. Her bir etki alanı dağıtımında sys-tasks adında bir flow oluşur. Domain içerisinde kullanılan tüm görevler bu flow'da birer kayıt örneğidir.

Input ve output mapping'leri task tanımının parçası değildir. Mapping'ler, görevin kullanıldığı yapıda (transition, state entry/exit, function vb.) ayrıca belirtilir.

Task Tanım Şablonu

Her task tanımı task-definition.schema.json şemasına uyar. Zorunlu alanlar:

Schema: task-definition.schema.json

{
"key": "task-key-name",
"version": "1.0.0",
"domain": "core",
"flow": "sys-tasks",
"flowVersion": "1.0.0",
"tags": ["tag1", "tag2"],
"attributes": {
"type": "6",
"config": {
// task türüne göre değişir
}
}
}

Üst Düzey Alanlar

AlanTipZorunluAçıklama
keystringEvetTask tanımlayıcı anahtarı (^[a-z0-9-]+$ pattern)
versionstringEvetVersiyon (Major.Minor.Patch formatı)
domainstringEvetDomain tanımlayıcısı
flowstringEvetHer zaman sys-tasks
flowVersionstringEvetFlow versiyonu
tagsstring[]EvetTask etiketleri (en az 1)
attributes.typestringEvetTask türü numarası
attributes.configobjectEvetTask türüne göre konfigürasyon

Görev Türleri

task-definition.schema.json toplamda 16 task türü tanımlar:

#Görev TürüAçıklamaDetay
1DaprHttpEndpointDapr HTTP endpoint çağrısıDaprHttpEndpoint
2DaprBindingDapr binding (input/output)DaprBinding
3DaprServiceDapr service invocation çağrılarıDaprService
4DaprPubSubDapr pub/sub mesajlaşmaDaprPubSub
5HumanTaskİnsan müdahalesi gerektiren görev(detay belgesi sonraki phase'de)
6HttpTaskHTTP web servis çağrılarıHTTP
7ScriptTaskC# Roslyn script çalıştırmaScript
8ConditionTaskKoşullu mantık ve branch kararı(detay belgesi sonraki phase'de)
9TimerTaskZamanlayıcı görevi(detay belgesi sonraki phase'de)
10NotificationTaskBildirim göndermeNotification
11StartFlowTaskYeni instance başlatmaTrigger
12TriggerTransitionTaskMevcut instance üzerinde transition tetiklemeTrigger
13GetInstanceDataTaskTek bir instance'ın verisini çekmeTrigger
14SubProcessTaskSubProcess çalıştırmaTrigger
15GetInstancesTaskFiltre ile birden fazla instance çekmeGetInstances
16SoapTaskSOAP 1.1 / 1.2 web servis çağrısıSoap

Görev Kullanımı

Görevler diğer modüller tarafından referans verilerek kullanılır. Her görev kullanımında order ve task referansı tanımlanır.

Örnek Görev Referansı

"onExecutionTasks": [
{
"order": 1,
"task": {
"key": "invalidate-cache",
"domain": "core",
"flow": "sys-tasks",
"version": "1.0.0"
}
}
]

Çalıştırma Sırası

  • order değerleri kendi aralarında gruplanır
  • Aynı sırada olanlar paralel çalıştırılır
  • Farklı sıradakiler sıralı çalıştırılır

Veri Yönetimi

  • Task'ların çalışma sonucunda output data'sı varsa master data'yı patch version olarak yükseltir

Görev Çalıştırma Noktaları

İş akışı içinde:

  • Transition.OnExecutionTasks: Geçiş tetiklendiğinde çalışır
  • State.OnEntries: Bir aşamaya ilk girişte çalışır
  • State.OnExits: Bir aşamadan ilk çıkışta çalışır

İş akışı dışında:

  • Functions.OnExecutionTasks: Platform servisleri içinde çalışır
  • Extensions.OnExecutionTasks: İş akışı kayıt örneği görevleri