Aracılığıyla paylaş


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,

  1. Durumun daha yeni bir sürümü depolama alanından yüklendi.
  2. Bu örnek tarafından tetiklenen bir olay başarıyla depolama alanına yazıldı.
  3. 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.