Notifications
Durum değişikliklerine tepki verme özelliğine sahip olmak genellikle kullanışlıdır. Tüm geri çağırmalar ' sıra tabanlı garantilere tabidir Orleans; Eşzamanlılık Garantileri bölümüne de bakın.
Onaylanan durumu izleme
Onaylanan durumdaki değişikliklerden haberdar olmak için alt JournaledGrain<TGrainState,TEventBase> sınıflar şu yöntemi geçersiz kılabilir:
protected override void OnStateChanged()
{
// read state and/or event log and take appropriate action
}
OnStateChanged
onaylanan durum her güncelleştirildiğinde çağrılır, yani sürüm numarası artar. Bu durum,
- Durumun daha yeni bir sürümü depolama alanından yüklendi.
- Bu örnek tarafından tetiklenen bir olay başarıyla depolama alanına yazıldı.
- Başka bir örnekten bir bildirim iletisi alındı.
Tüm taneciklerin başlangıçta sıfır sürümü olduğundan, depolamadan ilk yükleme tamamlanana kadar bu OnStateChanged() , ilk yük sıfırdan büyük bir sürümle tamamlandığında çağrılır.
Belirsiz durumu izleme
Belirsiz durumdaki değişikliklerden haberdar olmak için alt JournaledGrain
sınıflar bu yöntemi geçersiz kılabilir:
protected override void OnTentativeStateChanged()
{
// read state and/or events and take appropriate action
}
OnTentativeStateChanged() , belirsiz durum değiştiğinde çağrılır; örneğin, birleştirilmiş dizi (ConfirmedEvents + UnconfirmedEvents) değişirse. Özellikle, her zaman için bir geri OnTentativeStateChanged()
çağırma işlemi sırasında RaiseEventgerçekleşir.