通知
多くの場合、状態の変化に対応する機能を持つことは便利です。 すべてのコールバックは、Orleans のターンベースの保証の対象となります。コンカレンシーの保証に関するセクションも参照してください。
確認済みの状態を追跡する
確認済みの状態に対する変更通知を受け取るために、JournaledGrain<TGrainState,TEventBase> サブクラスはこのメソッドをオーバーライドできます。
protected override void OnStateChanged()
{
// read state and/or event log and take appropriate action
}
OnStateChanged
は、確認済みの状態が更新されるたびに呼び出されます。つまり、バージョン番号が大きくなります。 これは次の場合に発生します。
- 新しいバージョンの状態がストレージから読み込まれた。
- このインスタンスによって発生したイベントが、ストレージに正常に書き込まれた。
- 他のインスタンスから通知メッセージを受信した。
ストレージからの最初の読み込みが完了するまで、すべてのグレインのバージョンは最初は 0 になるため、これは、最初の読み込みが 0 より大きいバージョンで完了するたびに OnStateChanged() が呼び出されることを意味します。
仮の状態を追跡する
仮の状態に対する変更通知を受け取るために、JournaledGrain
サブクラスはこのメソッドをオーバーライドできます。
protected override void OnTentativeStateChanged()
{
// read state and/or events and take appropriate action
}
OnTentativeStateChanged() は、仮の状態が変更されるたびに呼び出されます。つまり、結合シーケンス (ConfirmedEvents + UnconfirmedEvents) が変更された場合です。 特に、OnTentativeStateChanged()
のコールバックは常に RaiseEvent の間に行われます。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET