0

タイトルは私が求めているものには適切ではないかもしれませんが、それを表現する良い方法が思いつきません.

基本的に、トランザクションがシステムに入力され、検証され、ビジネス ルールが適用され、トランザクションがデータベースに永続化されるシステムを設計しています。各トランザクションには定義済みのキーがあるため、コントローラー パターンを実装し、これらのステップを定義するサガを作成することを考えていました。

ただし、データの時限送信時に問題が発生します。指定されたカットオフ時間にさまざまなパートナーに送信する必要がある数千の異なるトランザクションがある可能性があります。指定されたパートナーのすべてのトランザクションがそのパートナーのファイルにある必要があります。私が見ていないのは、個々のサガを持つすべてのトランザクションを同時に起動して収集する方法です。

各トランザクションがカットオフ時間に起動するようにタイムアウトを実装することを考えていましたが、すべてのトランザクションをまとめるにはどうすればよいですか?

私が検討しているオプションの 1 つは、Quartz.Net を使用して各カットオフ タイムに実行する時間指定ジョブを設定し、そのジョブにメッセージをサガに発行させ、ConfigureHowToFindSaga 関数を使用してトランザクションのステータスを更新することです。これが最良の実装であるかどうかはわかりません。

4

1 に答える 1

0

特定のパートナーのトランザクションを少なくとも 1 つ処理した後、現在の時刻と予想されるカットオフ時刻の計算に基づいてタイムアウトを要求できます。たとえば、トランザクションを午前 9 時に処理する場合、これは、そのパートナーに送信するトランザクションが少なくとも 1 つあることを意味し、カットオフが午後 5 時にある場合、要求されたタイムアウトは 8 時間になります。タイムアウトを処理すると、ファイルを送信し、ファイルが送信されたサガを更新できます。

于 2014-06-25T12:37:07.617 に答える