2

「人」から「ケース」への長期にわたる仕事の割り当てプロセスを表す物語があります。いくつかのイベントがそれを開始する可能性があり、プロセスの最後に割り当ての確認があり、その時点でサガが完了し、個人がケースに割り当てられます。確認を無期限に待たないように、このサガのタイムアウトを設定したいと思います。これは間違いなく有効なビジネスユースケースです。そこには問題はありません-かなりバニラです。

ツイストは、誰かがケースを保留にすると、この割り当てプロセスがブロックされる可能性があることです。サブスクライブできるイベントがあるので、割り当てのサガはケースが保留中であることを認識しますが、タイムアウトを調整するか、何らかの方法で一時停止しない限り、割り当てのサガはケースの保留が解除される前にタイムアウトになる可能性があります。これを行うのはビジネス上意味がないので、基本的に、他のイベントが発生するまでタイムアウトクロックを停止したいと思います。

これと同じ問題が数年前にここで言及されました。これはまだ不可能ですか、それともv3.xにそれを可能にする新機能がありますか?そうでない場合、それは計画された機能ですか?

ありがとう!

4

2 に答える 2

3

ケースが保留になっている場合、インスタンスのタイムアウトを完全に削除してみませんか? あなたのサガは、ケースの状態と、ケースの期限が計算された時刻を維持します。これは、最初のタイムアウトを作成したときに設定されている可能性があります。ケースが再アクティブ化されたら、再アクティブ化と保存された「期限」からの時間の差を計算し、その差でそのインスタンスの新しいタイムアウトを作成します。ケースが保留されていた時間を考慮して、インスタンスの状態に保存する新しい期限を設定することもできます。

于 2013-02-06T22:13:59.710 に答える
2

タイマーに直接タブで移動して、タイムアウト メッセージを「保留中」にする方法はないと思います。

サガのタイムアウト ハンドラ内にそのロジックを配置します。ケースが保留中かどうかを確認し、サガを終了せずに別のタイムアウトをリクエストします。

于 2013-02-06T20:29:48.090 に答える