0

再試行と最大試行機能を構築するステート マシンを作成しようとしています。説明させてください、これまでのところ私はこれを持っています:ここに画像の説明を入力

SAVED から VALIDATED に行きたいのですが、エラーがあれば AWAITING_VALIDATION 状態に行かなければなりません。3 分後、VALIDATED 状態に再試行します。

  1. 再試行メカニズムを正しく設定しましたか?
  2. 3回試行した後、SAVED状態に戻りたい(そしてステートマシンを一時停止したい)。ファンシーなwaty(たとえば、スプリングステートマシンを使用)でそれを行うことは可能ですか、それともある種のキャッシュを使用して手動で行う必要がありますか?

ご協力いただきありがとうございます

4

1 に答える 1

1

さまざまなマシン構成でこれらのことを行うにはおそらく多くの方法がありますが、そうは言っても、これは非常に明確に提示されたゲストであり、私はそれに時間を費やしたいと思いました.

あなたは近くにいて、これを実現するためのいくつかのこと(私はトリックと言うでしょう)を逃しました. 答えはextended state variables、マシンにメモリを追加するために使用することです。これらの変数は通常、マシンが何をする必要があるかを表すために必要なステートメントの数を制限するために使用されます。3 つのループが必要であり、必要に応じて各ループとトランジション (特定のガードを使用) を表すために、より多くの状態を作成することができます。ただし、10 または 20 または 100+ などのループがさらに必要な場合、これは単純に状態構成を爆発させます。

私はssm-sample3で例を作成しました。これは、どのようextended state variablesに異なるかを示してguardsおり、actionsこの特定のフローを推進するために使用できます。

残念ながら、電流にはバグがあり、ジャンクション1.1.1.RELEASEに直接遷移して、AWAITING_VALIDATION一時停止してガードを持つ無名遷移を使用するHAS_ERRORまでループすることができません(そのため、サンプルにはで不要なダミー状態があります)。VALIDTMP1.2.x

これはおそらく、例として、または参照ドキュメントによくある質問として追加したいものです。

これが役立つかどうかレミーは知っています。

于 2016-11-13T18:50:58.353 に答える