リアルタイムシステムであるかどうかに関係なく、メモリーメントパターンは開始するのに最適な場所です。
mementoパターンは、オブジェクトを以前の状態に戻す機能(ロールバックによって元に戻す)を提供するソフトウェア設計パターンです。
記念品パターンは、3つのオブジェクト(実装者、管理人、および記念品)を使用して実装されます。
オリジネーターは、内部状態を持つオブジェクトです。
世話人はオリジネーターに何かをしようとしていますが、変更を元に戻せるようにしたいと考えています。世話人は最初に発信者に記念品オブジェクトを要求します。次に、実行しようとした操作(または一連の操作)を実行します。
操作の前の状態にロールバックするために、それはmementoオブジェクトをオリジネーターに返します。
記念品オブジェクト自体は不透明なオブジェクトです(管理人が変更できない、または変更すべきではないオブジェクト)。
このパターンを使用する場合、発信者が他のオブジェクトまたはリソースを変更する可能性がある場合は注意が必要です。メモリメントパターンは単一のオブジェクトで動作します。
いくつかのアイテムに焦点を当てるために、ウィキペディアの記事を少し解散しました。
シナリオでは、オリジネーターがプライマリアプリケーションコードになります。おそらく、ジョブが登録されて処理が開始される時点です。
世話人はあなたが作成する必要があるものであり、ある種のロギングシステムや他のデータストアかもしれません。
記念品は、元に戻すおよび/またはやり直す必要がある関連情報になります。これは、処理キューに戻すことができるある種のジョブの説明のように見えると思います。
ジョブからの既存の変更をJ1データベーストランザクションでラップできる場合は、ロールバックの問題に対処できます(all the action taken so far must be reverted)。トランザクションのロールバックが発生すると、ジョブを再キューイングするために、世話人の呼び出しをトリガーしますJ1。
心に留めておくべきことの1つは、Wikipediaの要約の最後の警告です。変更がアトミックであり、それらがまとまったセットとして適用またはロールバックできることを確認する必要があります。
リアルタイム環境にいることが、記念品パターンの実装方法に大きな影響を与えるかどうかはわかりません。アクティビティの期限がある場合は、システムが適切な時間内に応答するようにするために、変更の一部をプロファイルする必要がある場合があります。最初に機能を実装してから、他のアプリケーション要件を満たしていることを確認します。あなたがこれまで述べてきたことを無効にするような何かに遭遇するとは思いません。