問題タブ [drools-fusion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
events - Drools Fusion で遅延イベントを処理する方法
イベント A の次にイベント B。A の 5 分後にイベント B がない場合は、ルールをトリガーします。
正常に機能するリアルタイムイベントの場合、実際には遅延してイベントが発生します。インターフェイスから。
例: イベント A の時刻: 01:00 (mm:ss) ですが、02:00 に受信されました 上記のルールは 07:00 にトリガーされますが、ビジネス ロジックでは 06:00 にトリガーされる必要があります。
この種の要件をどのように処理すればよいですか?
java - 累積関数またはルールコードから drools セッションクロックにアクセスする
現在の時刻を認識する必要がある累積関数を作成しようとしています。私は明らかに System.currentTimeMillis() を使用できますが、疑似クロックで drools セッションを実行してテストするために、この関数をテストできるようにしたいと考えています。
getResult() メソッド内から、またはそれが不可能な場合は drools コード自体から (te when セクションで) セッション クロック (または、KnowledgeRuntime) を取得する方法を探しているので、関数へのクロック
drools - DroolsFusionCEPでのテストイベントの有効期限
チャオ、私はいくつかの方法でテストしましたが、それでもDrools Fusionのイベント有効期限メカニズムをテストして検証することができないので、ちょっとしたガイダンスを探していますか?
マニュアルを読み、この機能に興味があります。
つまり、イベントが作業メモリーに挿入されると、エンジンは、イベントが他のファクトと一致しなくなったことを検出し、自動的に撤回して、関連するリソースを解放することができます。
Eclipse、5.4.0.FinalでDrools IDEを使用しており、「新しいDroolsプロジェクト」ウィザードで作成されたテンプレートコードを変更して、イベントの有効期限をテストおよび確認しました。
以下のコード。「ライフサイクル」を正しく機能させるために私が理解した方法は次のとおりです。
- KBaseをSTREAMモードでセットアップする必要があります-チェック
- イベントを時間順に挿入する必要があります-チェック
- イベント間の時間的制約を定義する必要があります-私の場合は最後のMessage()を確認してください
ただし、最後にEventFactHandleを検査すると、Event()の有効期限が切れていません。ご協力いただきありがとうございます。
Java:
よだれ:
注意:メッセージイベントに1秒の有効期限を追加しても、
最初のメッセージイベントが挿入されたという期待どおりの結果がまだ得られません。期待していたはずの結果が期限切れになりましたか?ご協力いただきありがとうございます。
drools - Drools Fusion のスライディング ウィンドウのサンプルが機能しない
Drools の初心者で、スライディング ウィンドウの概念を試しています。
私の問題は、少なくとも 2 つの販売イベントで成功したトランザクションが発生したかどうかを検出することです。そのようなイベントが発生したかどうかにかかわらず、常に「2 つのイベントで販売が発生しました」という出力が得られます。
--------------drl----------
- - - - - - -コード - - - - -
drools - Drools Fusion の時間ベースのスライディング ウィンドウと属性フィルター
Drools 5.4.0.Final でスライディング タイム ウィンドウを使用しようとしましたが、次の公式ドキュメントのスニペットが与えられました。
と
私は、混合形式が有効であると考えていました:
しかし、私が間違っていない限り、期待どおりに動作しません (つまり、過去 2 分間に発生した RHT Stock Ticks のみを考慮してください)。そして、結果の論理がわかりませんでした。
誰かが私にそのトリックを説明してくれませんか?
ありがとう。
drools - drools fusion を使用して単純な一連のイベントを認識して検証する方法
「B」イベント (STREAM モード) の間に「A」イベントをカウントするための最良の方法 (実際にはよだれ融合の方法) を見つけることができません。シーケンスの例は次のとおりです。
ユースケースは
シーケンスの有効性を検証します。つまり、各「B」イベントの間に常に 3 つの「A」イベントがあります。
そのような状況で「ウィンドウオーバー」の概念が適切かどうかはわかりません。助けてくれてありがとう、私はまだ CEP のやり方で考えるのに苦労しています。
drools - 垂れ下がった 3 つの連続したオブジェクト
Drools Fusion に同じクラスの 3 つのオブジェクトがあるかどうかを調べようとしています。以下のように Tick という名前の POJO があります。
そして、 crossovertype == CrossOverType.bear を持つ Tick の3つの連続したオブジェクトがあるかどうかを調べようとしています
以下はルールとメインクラスです
ルールは
crossovertype==CrossOverType.bear を持つ 2 つの連続する Tick オブジェクトがあるかどうかを確認できますが、これは 3 つの連続するオブジェクトでは機能しません。私に何か提案してください.ThankYou
drools - Drools ナレッジ セッションの継続
私はある学区で働いており、Drools を使用して、学区を構成する学校の生徒数に対して次のタイプのルールを実装することを計画しています。
- 学生が 1 年間に 3 回欠席した場合、出席指標は WARN ステータスに移行します。
- 学生が 1 年間に 6 回欠席した場合、出席指標はクリティカル ステータスに移行します。
- 学生が 1 年間に 3 つの重大な行動インシデントを起こした場合、その学生の行動指標は WARN ステータスに移行します。
- 学生が 1 年に 2 回のマイナーな行動インシデントと 2 つの重大な行動インシデントを起こした場合、その行動指標はクリティカル ステータスに移行します。
- …これらは頭の中で思いついた例にすぎませんが、似たような性質のルールは他にもたくさんあります。
これらのルールはすべて、Drools エキスパートを使用して簡単に表現できます。また、生徒のルールの処理は同期である必要はありません。これを実装する最良の方法についていくつか質問があります。
ある観点からは、これは一連のイベントの監視システムと見なすことができます。これにより、新しい各イベントが挿入されるステートフル セッションを作成することを考えました。ただし、イベントは 9 か月にわたって発生し、比較的まれです。また、学校ごと、または生徒ごとにセッションを構築することもできます。
- その長い間セッションをメモリに保持することは問題でしょうか?
- サーバーに障害が発生した場合、セッション状態を最初から再構築する必要がありますか、それとも定期的にスナップショットを作成し、スナップショットの時点以降に発生した事実を復元することをお勧めします.
もう 1 つのオプションは、その学生のイベントが処理された後、各学生のセッションを永続化することです。次のイベントが発生すると、ストレージからセッションを取得し、新しいファクトを挿入します。こうすれば、学生のステータスを取得するために、エンジンを実行するたびにすべてのファクトを取得する必要がなくなります。このような構成はサポートされますか? これを行うことに短所はありますか?
3 番目のアプローチは、ルールを実行する必要がある他のすべての事実を取得し、新しい KnowledgeSession を作成してルールを実行することにより、学生の新しい事実に対応することです。
何が最善のアプローチであるかについてのアドバイスは大歓迎です。
デイブ
drools - 一般的な方法で drl を書く
私の要件は、ルールで顧客 ID をハードコーディングせずに、同じ顧客からの注文要求をカウントする必要があるということです。その理由は、1000 人の顧客がいる場合、同じものに対して 1000 のルールを作成する必要があるためです。これを回避するには、すべての顧客オブジェクトを処理する一般的な方法が必要です。
たとえば、customerA と customerB からの 4 つの注文リクエスト オブジェクトがあります。私のルールは、個々の顧客からのリクエストの数を把握できるはずであり、それらのオブジェクトを保存する必要もあります。
基本的に私は drools の同等の方法で sql のグループが必要です。
ポインタを提供してください