問題タブ [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.

0 投票する
2 に答える
10952 参照

drools - 作業メモリーから特定のタイプのファクトを取得する

すべてのファクトを取得する代わりに、作業メモリーから特定のタイプのファクトを取得する必要があります。

以下のように、ワーキングメモリからすべての事実を取得できることを学びました。

作業メモリーから特定のタイプのオブジェクトを取得するためのポインターをいくつか提供してください。

0 投票する
1 に答える
1663 参照

drools - ルールの条件でリトラクトを使用する際の問題

特定のイベントが最後の「m」の期間に「n」回発生したかどうかを検出するルールを作成しようとしています。私はdroolsバージョン5.4.Finalを使用しています。5.5.Finalも試しましたが効果はありません。

Droolsがそれを呼んでいるように、いくつかの条件付き要素があり、蓄積して収集することがわかりました。以下のサンプルルールでcollectを使用しました

終わり

ログを挿入するコードは以下のとおりです。このコードは、3秒ごとにログを挿入し、ルールを実行します。

これで、私が達成できたのは、過去10秒間に上記のLogMessageの存在を確認することです。また、ルールをトリガーする最後の10秒間に発生したLogMessageの正確なセットを見つけることもできました。

問題は、これらのメッセージが処理されたら、次の評価サイクルに参加してはならないということです。これは私が達成できなかったことです。これを例を挙げて説明します。

以下のタイムラインを検討してください。タイムラインには、ログメッセージの挿入と、発生する必要のあるアラート生成の状態が表示されます。

期待される結果

- ログ - アラート

0-LogMessage1-アラートなし

3--LogMessage2-アラートなし

6 --LogMessage3 --Alert1(LogMessage1、LogMessage2、LogMessage3)

9--LogMessage4-アラートなし

12--LogMessage5-アラートなし

15 --LogMessage6-Alert2(LogMessage4、LogMessage5、LogMessage6)

しかし、現在のコードで何が起こっているのか

実結果

- ログ - アラート

0-LogMessage1-アラートなし

3--LogMessage2-アラートなし

6 --LogMessage3 --Alert1(LogMessage1、LogMessage2、LogMessage3)

9 --LogMessage4-Alert2(LogMessage2、LogMessage3、LogMessage4)

12 --LogMessage5-Alert3(LogMessage3、LogMessage4、LogMessage5)

15 --LogMessage6-Alert4(LogMessage4、LogMessage5、LogMessage6)

基本的に、すでに処理されてアラート生成に参加しているメッセージを破棄することはできません。リトラクトを使用して、処理されたファクトを作業メモリーから削除しようとしました。しかし、ルールのその部分にリトラクトを追加すると、ルールはまったく実行されなくなりました。リトラクトを追加した後、ルールの実行が停止する理由を理解できませんでした。

どこがおかしいのか教えてください。

0 投票する
1 に答える
542 参照

drools - Drools 一時ルール

私は Drools の初心者です。ここでは、プロセスが一定時間以上実行されている場合に通知を生成しようとしています - 5 分としましょう。

上記を実現するために、DRL ファイルに次のコードを記述しています。しかし、それは機能していないようです。

drl ファイル

上記の.drlファイルには、Message宣言されたという名前のイベントがあります。ルールは 5 分間実行されているかどうかをチェックmsgtext1st messageています。その場合は、通知を生成する必要があります。この例では、結果を出力しているだけです。

前もって感謝します。私はあなたの助けに感謝します。

0 投票する
0 に答える
475 参照

drools - Drools イベントの有効期限の問題

現在、drools 5.1 バージョンを使用しています。しばらくしてからイベントを期限切れにしたいと考えています。次のアプローチを試しています。

ルール内で蓄積関数を使用しています。また、インスタンスが作業メモリから取り消されていない (期限切れになっている) ことを観察しました。私は常に同じファクトカウントを取得しています。

しばらくしてイベントを期限切れにするポインタはありますか。

5.3 を試してみたところ、CEP と累積機能のあるルールの場合、有効期限が期待どおりに機能しないことがわかりました。

問題を解決するためのポインタを提供してください。

0 投票する
1 に答える
525 参照

java - changeset.xml で複数の drl ディレクトリを指定する

現在、drools 5.1.1 を使用しています。changeset を使用して drls で複数のディレクトリを構成しようとすると、最後のディレクトリのみが drools によってスキャンされていることがわかりました。この動作は正しいですか?私の要件は、複数の drl ディレクトリを構成する必要があるということです。代替手段がある場合に備えて、問題を解決するための指針をいくつか提供してください。

0 投票する
1 に答える
374 参照

drools - Drools Fusion の一時的なオペレーターの「実行中」の問題

Drools Fusion の使用を開始しましたが、temporal オペレーターの実行中に奇妙な問題に直面しました。理由により、たとえばオペレーターが正常に動作した後でも、それを機能させることはできません。

これが私のイベントの宣言です-特定のタイプの間隔が含まれているだけです:

これが私のルールです:

実行しても何も発生しません。

ただし、途中から後に変更する次の結果が得られます。

値を見ると、開始タイムスタンプと期間に基づいて、2 番目のイベントが最初のイベント内にあるため、期間が発生するはずであることがはっきりとわかります。

Drools Fusion のバグですか、それとも何か間違っていますか?

ところで-私はクラウドモードで実行しています

0 投票する
1 に答える
332 参照

drools - イベントベース Drools ルール

Drools Fusion を初めて使用するので、以下の条件のルールを作成できません

  1. (日付、エラー メッセージなど) でサーバー ログ ファイルを読み取ります。
  2. 見つかった場合、イベント タイプ: ERRORイベント メッセージ: "Memory Error"が何らかのイベントをトリガーする必要があります (現時点ではSOP ) 。
  3. もう 1 時間は、同じイベント メッセージとイベント タイプのイベントをトリガーしてはなりません(ログ ファイルにある場合)。
  4. 1時間後に同じことが見つかった場合、イベントをトリガーする必要があります

注:ログ ファイルで指定された同じ日付と時刻を使用する必要があります

同じために必要なことをしてください。

0 投票する
2 に答える
404 参照

drools - イベント処理

Drools は初めてです。Drools Fusion を使用して単純な複合イベント処理 (CEP) アプリケーションを作成しようとしています。

私の要件は

次のような単純な Event クラスがあります。

ルール ファイルは次のとおりです。

テストのために、次のタイムライン 0m、4m、10m、12m でそれぞれ e1、e2、e3、e4 の 4 つのイベントをワーキング メモリに注入しています。

Java クラス ファイル

前のイベントがないため、e1 はルールに合格すると予想されます。また、前のイベントが 6 分離れているため、e3 も合格すると予想しています。

ただし、別の出力が得られます。

出力を期待する

  • イベントによる重大なアラート: e1
  • イベントによるクリティカル アラート: e3

しかし、私は得ています

  • イベントによる重大なアラート: e1
  • イベントによる重大なアラート: e2
  • イベントによるクリティカル アラート: e3

追加情報: イベント処理に STREAM モードを使用しています。誰でも出力を説明して、どこが間違っているか教えてください。ありがとう!

0 投票する
1 に答える
164 参照

drools - Drools Fusion イベントの暗黙的なタイムスタンプにアクセスすることはできますか?

既存の Drools Fusion ルールを編集しようとしています。イベントに使用するクラスにはタイムスタンプの種類がないため、ルールは、イベントの作成時に Drools によって暗黙的に追加されたものに依存しています。

ルールの「then」ブロックにコードを追加して、イベントが発生した時間に関連するデータをデータベースから取得したいと考えています。しかし、これらの暗黙のタイムスタンプにアクセスする方法が見つかりません。

これを行う方法はありますか、またはイベント クラスを再定義する必要がありますか?

0 投票する
0 に答える
137 参照

drools - Drools Fusion-ヘルプが必要

これは、小規模な POC で特定の機能を実装するために使用している DRL です。

これが私の質問です(私が核融合に慣れていないため、理解の欠如から生じた場合はご容赦ください)...

これを行うと、

私はこの出力を期待しています、

しかし、私は、

これは予想される動作ですか?私の理解は間違っていますか?誰かがここで正確に何が起こっているのか教えてもらえますか?

注: セッションは、「ストリーム」モード用に構成されたステートフル セッションです。クロックは SessionPseudoClock です。