1

1 分間に約 10,000 件のメッセージを受信するサービスがあり、これらをリアルタイムで処理する必要があります。これらを処理するには、ナレッジ ベースに数千のファクトが必要です。

最初は、これらのファクトをロードするステートフル ナレッジ セッションを使用していました。メッセージを挿入し、ルールを実行し、メッセージを撤回し、繰り返します。これはうまく機能しましたが、パフォーマンスは十分ではありませんでした。

このプロセスをマルチスレッドにする必要があり、そのためにはステートレス セッションが必要であることを理解しています。ステートレス セッションで私が抱えている問題は、処理するメッセージごとに、これらの数千のファクトをナレッジ ベースに再挿入する必要があることです。

ほとんどの実行間で変化する唯一の事実は新しいメッセージであるため、ステートレス セッションのそれぞれを開始できる他の (メッセージ以外の) 事実をロードした最初のナレッジ ベースを用意できることを望んでいました。ステートフルで行ったように、メッセージ自体をそれぞれにロードする必要があります。

これは可能ですか?

私はバッチ挿入を使用していますが、これが私のパフォーマンスを実際に低下させているようには見えませんが、これらの数千のファクトを 1 分間に 1 万回再挿入する必要があるのはまだ間違っているようです。

4

1 に答える 1