リクエストがあります。ここでは、ESBを使用してDrools 5を公開し、同時にWebアプリケーションを使用する必要があります。Eclipseを使用してDrools 5を実行する方法を見つけましたが、現時点では同じWebアプリを使用してDrools 5を構成し、将来的にesbにシフトすることは困難です。 。GuvnorとDrool-Serverは私を助けるのに十分ではなく、グーグルも助けにはなりません。春のサポートも利用できません。
どんな助けでも大歓迎です...ありがとう
リクエストがあります。ここでは、ESBを使用してDrools 5を公開し、同時にWebアプリケーションを使用する必要があります。Eclipseを使用してDrools 5を実行する方法を見つけましたが、現時点では同じWebアプリを使用してDrools 5を構成し、将来的にesbにシフトすることは困難です。 。GuvnorとDrool-Serverは私を助けるのに十分ではなく、グーグルも助けにはなりません。春のサポートも利用できません。
どんな助けでも大歓迎です...ありがとう
Drools を ESB 内で「公開」する必要があるのはどのレベルですか? 非同期 Web サービスを使用するエンタープライズ ソリューションで Drools を使用しています。私のワークフローの多くは非常に長時間実行されます (2 週間から 1 か月)。重要なのは、呼び出し間で StatefulKnowledgeSession を一時的に保持することです。セッションをシリアル化し、リレーショナル データベースに BLOB として保存する JPAStatefulKnowledgeSession があります。私の非同期タスクの多くは、呼び出されてから 1 秒以内に終了するため、このソリューションを使用しないことにしました。RDBMS でプロセスを永続化するためのパフォーマンス コストは、私のニーズには大きすぎました。私の解決策は、セッションをメモリ内キャッシュに保存することでした。Infinispan の設定と使用は驚くほど簡単で、フレームワークに関しては 1 つの問題もありませんでした。
ESB と Web アプリケーションで同じ KnowledgeSession を使用する必要がありますか? StatefulKnowledgeSession である必要がありますか? 状態を維持する必要がある場合は、一定の間隔でキューベースのシステムと fireAllRules() を検討する必要があります。アクションがコマンド ベース (オブジェクトの挿入、プロセスの開始など) である場合、Drools にはパターン用の API が既にあると思います (これは Drools Server が内部で行っていることだと思います)。KnowledgeSession をシングルトンにすることもできます。ただし、ReentrantLock を使用してオブジェクトの同時呼び出しを防ぐことを検討してください。セッションを分離している場合は、独自のリポジトリを作成するのが最適です。Infinispan の Cache は ConcurrentHashMap を実装しているため、セッションの ID をキーとして、KnowledgeSession を値として使用できます。