java - JBoss Drools 从 DRL 插入事实

标签 java memory rules drools fact

我需要我的 WorkingMemory 了解在 DRL 中创建的事实,如下所示:

rule "Your First Rule"
when
    $testRule : TestRule(count >= 100)
then 
    System.out.println("100 PACKETS");
end

有没有办法让 WorkingMemory 了解 TestRule 事实,然后进行更新?我的目标是让规则知道何时收到 100 个数据包。

最佳答案

通常我会创建一些东西作为规则的一部分,并将其用作标志。如果你不需要创建任何东西,那么你可以创建一个标志,例如

rule "Your First Rule"
when
    $testRule : TestRule(count >= 100)
    not         Flag(id="packets")
then 
    System.out.println("100 PACKETS");
    insert( new Flag("packets") )
    update( $testRule )
end

我不认为这段代码是正确的,但我认为你可以明白这个想法......你需要创建一个名为 Flag 的类。需要更新来告诉 drools 必须更新 rete 树。

关于java - JBoss Drools 从 DRL 插入事实,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5003426/

相关文章:

mysql - MariaDB max_heap_table_size 是动态分配的吗?

python - 收到错误 "Wrong python code defined for salary rule"odoo 11

python - 如何基于IOC脚本编写YARA规则?

java - 是否有用于集合处理的 Java 库?

java - 如何在网络服务器中使用属性文件?

java - 在实例方法中写入静态变量,为什么这是一种不好的做法?

c - 如何在C中实现OPT页面替换算法?

c 编程 shmat ( ) 权限被拒绝

arrays - 验证数组中的 Laravel 嵌套规则

java - Tomcat - 数据库连接池问题