Orleans 2.0公式文書-4.9.5 Grains->イベント遡及->通知

1676 ワード

通知


通常、状態の変化に簡単に反応することができる.すべてのコールバックはOrleansのラウンドメカニズムの保証を受けている.「同時保証」の項も参照してください.

追跡確認の状態


確認ステータスの変更を通知するには、JournaledGrainサブクラスでこのメソッドを書き換えることができます.
protected override void OnStateChanged()
{
   // read state and/or event log and take appropriate action
}

確認されたステータスが更新されるたびに、バージョン番号が増加するOnStateChangedが呼び出されます.これは次の場合に発生します.
  • は、更新されたバージョンの状態を記憶からロードする.
  • このインスタンスで発生したイベントは、ストレージに正常に書き込まれました.
  • は、他のいくつかのインスタンスから通知メッセージを受信する.

  • すべてのgrainの初期バージョンが0であるため、ストレージの初期ロードが完了する前に、これは、初期ロードが完了し、バージョンが0より大きいたびにOnStateChangedが呼び出されることを意味することに注意してください.

    追跡暫定状態


    暫定状態の変更を通知するには、JournaledGrainサブクラスでこのメソッドを書き換えることができます.
    protected override void OnTentativeStateChanged()
    {
       // read state and/or events and take appropriate action
    }
    
    OnTentativeStateChangedは、暫定状態が変更されるたびに、すなわち、コンビネーションシーケンス(ConfirmedEvents+UnconfirmedEvents)が変更されるたびに呼び出される.特に、OnTentativeStateChanged()に対するコールバックは、RaiseEventの間に常に発生する.