0

たとえば、システムは顧客の注文をcheck identification-> validate order context->で処理しますmake order。ただし、システム管理者は実行時にフローを変更でき、管理者は「<code>validate order context」をスキップできます。

私の質問は、システムが同時注文リクエストを処理している場合、システムがフローの変更をいつ適用する必要があるかということです。

  • a): 次の新規注文要求まで変更を適用します。

  • b): リクエストの処理に関係なく、すぐに変更を適用します。硬すぎるように聞こえます。

  • c): 特定の時刻まで変更を適用します。たとえば、変更は 00:00:00 に適用されます。良い戦略とは思えません。

状況のベストプラクティスは何ですか? jBMP フレームワークを使用してワークフローを制御する場合、どのような戦略を使用できますか? ありがとう!

4

2 に答える 2

1

次のワークフロー (注文など) に適用する最初のオプションは、同時実行の観点から最も安全です。これは、ステートフル オブジェクトに干渉せず、オブザーバーに何が起こったのかが非常に明確であるため、私が行うことです。

2 番目のオプションでは、既存のワークフローをロックして、そのvalidate order context状態にあるものがないことを確認する必要があります。そして、ある場合は、その状態から正しく移動することを解決するアルゴリズムを作成します。

最後に、最後のオプションは、実際には最初の 2 つのスケジュールを設定することです。そのため、どちらにも組み込むことができ、ビジネス ルール (つまり要件) によって駆動される必要があります。

于 2011-01-27T19:07:49.607 に答える
1

3 つのオプションはすべて有効です。正しい選択は、解決しようとしている問題によって異なります。ここではいくつかの例を示します。

  1. 次の新規注文から変更を適用します。これは、新しいワークフローを段階的に導入する場合に適したオプションです。これを「現在のワークフローで現在の作業を終了するが、新しい作業はすべて新しいワークフローを使用する」と説明するかもしれません。
  2. すぐに変更を適用します。これは、すべての作業 (現在の作業と新しい作業の両方) に現在のワークフロー (つまり、新しいワークフロー) を使用することがより重要な場合に適したオプションです。この一例として、「ワークフローから不要なステップを削除しました」などがあります。
  3. 特定の時間から変更を適用します。これは、「今日は古いワークフローを使用していますが、明日は新しいワークフローを使い始める」というような状況での適切なオプションです。
于 2011-01-21T14:00:48.303 に答える