2

CQRS プロジェクトで、ユーザーの情報要求 (クエリ) をログに記録し、必要に応じてデータ ストアからの応答に基づいてワークフローを開始する必要がある状況があります。ユーザーは、即時のフィードバックが必要な情報を要求しています。同時に、システムは必要に応じてワークフローを開始し、リクエストを分析します。リクエストは「純粋な」クエリでも「純粋な」コマンドでもないため、これを CQRS に実装するにはどうすればよいですか?

編集: これにさらにコンテキストを追加するには:アプリケーションは、ユーザーがクエリを入力するとアプリケーションが結果を返す検索アプリケーションのようなものです。ただし、アプリケーションはクエリもログに記録し、サーバーからの応答に応じてワークフローを開始できます。アプリケーションはまた、ユーザーの最後のいくつかのクエリを「記憶」し、それを使用して新しいクエリにコンテキストを提供します。

また、クエリの応答が同期していない場合があります。バックグラウンド ワーカーは、結果をクライアントに配信する責任を負う場合があります。

4

3 に答える 3

0

クエリの実行後に通知メッセージを送信するとどうなりますか? おそらく次のようなデコレータを使用します。

public QueryRs query(QueryRq rq) {
     final QueryRs rs = target.query(rq);
     notifier.notifyQueryDone(rs);
}

そして、ワークフローをサブスクライブさせ、メッセージを消費させます。このクエリがまだこのソリューションで状態を変更すると見なされているかどうかわかりませんか?

于 2013-09-10T00:58:10.043 に答える