问题标签 [drools-flow]
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.
java - 一些规则在 2 个 drools 服务器中的 1 个中行为不端
我不知道,确切的问题是什么,所以在这里解释一下场景:
我的生产设置中有 2 个 drools 服务器,随着活动的变化,新规则的部署如此频繁,几乎每天 5-7 次,并且它通过监视扫描程序在运行的服务器上动态发生。
我们在这里观察到一个奇怪的问题,有时,在两台服务器中的一台中,一些规则不起作用,但它在另一台服务器上起作用,但是当我重新启动同一台服务器时,它开始起作用。
我放了日志,看到每次都成功扫描jar,但在某些情况下,仍然流口水无法完全吸收规则jar。
设置详细信息: 我有 2 台服务器,其中运行 drools 服务器,还有 1 台服务器,我用来通过 kie-workbench 构建规则,规则 jar 被传输到这 2 台服务器,通过 jenkins 作业,它从将 kie 工作台服务器连接到其他 2 台服务器,并且我已经放置了手表扫描仪,当新的 jar 上传时,它将获取事件。
drools - Drools 规则多个规则流组
我有一些规则和规则流程。我有一个场景,我应该为一个规则分配多个规则流组。我处于无法分配通用规则流组名称的情况。当我给两个规则流组名称时,ruleflow-group "group1" "group2"
它会引发错误。上面有可能有这样的东西吗?
drools - 车辆路线与工作人员
我正在研究一种解决方案,我们需要将车辆路由到客户要求的任务位置。这是我的域的样子:
任务:
因此,我将 Staff 和 Vehicle 作为事实,而 Task 是一个计划实体。因此,使用 optaplanner 时,它会在链中安排任务,但会将不同的员工分配给同一链中的不同任务。
因此,如果 A、B、C、D 和 E 是任务,并且 Staff st1,st2,st3 和 Vechcle V1,V2 在那里。
理想的解决方案如下: V1->A(st1)->B(st1)->C(st1) V2->D(st2)->E(st2)
但我的解决方案看起来像: V1->A(st1)->B(st3)->C(st2) V2->D(st3)->E(st2)
这是因为我没有链接员工并将员工用作计划变量。现在,我可以使用 nextTask 应该具有与当前任务相同的员工的规则来修复它,但这是一个矫枉过正的问题。
我可以在这里做哪些最佳实践,以便每个任务链都有相同的员工?
注意:我不想让员工留在车辆中,就好像车辆免费一样,它可以分配给不同的员工以进行新的任务链。
drools - 如何处理 Drools 匹配
我问了一个有点类似的问题,但它的表述不正确。我将尝试再解释一次。
下面是我的用例,非常抽象。
我的 .drl 文件中有两条规则,用于检查两个用例的工作内存中的“if”条件。假设规则被命名为 rule1 和 rule2。在这些规则中,我使用 Drools 查询。我在java端创建对象(A型和B型)并触发规则。所以基本上,在规则的“那么”部分,我没有创建任何对象,这样规则可能会再次开始触发。
首先,我创建了一个 A 类型的 objA 并将其放入工作内存中。
现在我正在违反规则。
fire1) 只有 rule1 匹配,我将创建另一个 A 类型的对象并放入工作内存中。再次开火。
fire2) 现在出现了 rule1 和 rule2 都匹配的情况。
这是我的两个问题。
在 fire1 和 fire2 中,rule1 匹配类型 A 的对象。有没有办法从 Drools 获取这些模式匹配相似或不同的信息?
有没有办法告诉 Drools 在第二次触发 (fire2) 时不要评估 rule1 ?
如果我应该提供更多细节,请告诉我。
drools - Drools Workbench - 比较不同对象的共同属性
有谁知道如何在 drools 工作台上添加一个条件来比较具有相同名称但来自不同对象(如它们的 ID)的属性?
我要添加的是第三个条件,例如“l.ID = o.ID”。如果事实没有相同的 ID,则不会打印“登录”。我找不到办法做到这一点。
任何帮助将不胜感激。
干杯,
drools - 当事实不再匹配时从 Drools 获取一些事件
请看下面的两个代码设置。
设置 1:
和 .drl 文件
运行后,输出为: 已触发构建规则
内部 fireAgain 方法
设置 2:这里我只是将 fireAgain() 方法更改为:
其他一切都是一样的。运行后,输出再次相同: 已触发构建规则
内部 fireAgain 方法
据我了解,
在设置 1 中,规则没有被第二次触发,因为事实在工作记忆中没有改变。
在设置 2 中,规则没有被第二次触发,因为现在事实已经更新并且它与规则条件不匹配。
我的问题是,Drools 是否为设置 2 生成任何事件(规则被触发一次但现在因为事实已经更新而不再被触发?)这样我可以区分:规则没有被触发,因为事实没有改变和它没有被解雇,因为现在事实与规则条件不符?
drools - Drools 正在加载所有规则
我在我的项目中使用 drools 并假设它有 100 条规则。我有两个流程(通常它有开始节点->规则流任务->结束节点)。一个流程的规则流任务由分配给 50 个规则的规则流组指定,另一个流程的规则流任务由分配给其余 50 个规则的流程组指定。不重叠。
现在我使用 kiesession 并调用第一个流程的启动流程,我看到它加载了所有 100 条规则,而不是只有 50 条,并给了我编译和运行时错误。因此,请帮助我理解为什么来自不同规则流组的规则在流程流中执行,而这些规则与其规则流组无关?当条件加载时,我看到了它的所有内容。
drools - 如何在流口水中为持续时间属性添加值
每当我写持续时间(0s)时,它都会起作用,但是一旦我将其更改为持续时间(1s)或持续时间(5s),规则就不会触发......这是我想要触发的规则。
我们是否需要导入一些东西才能使持续时间属性起作用,因为我在任何地方都没有得到它。提前致谢。
eclipse-plugin - Drools决策表错误:创建KieBase时出错
我正在尝试实施流口水决策表。当我实现自己的示例代码时,出现以下错误: java.lang.RuntimeException:创建 KieBase 时出错。
我的 Eclipse IDE 控制台中可见的错误是:
java.lang.RuntimeException: 创建 KieBase 时出错 [消息 [id=1, kieBase=patient, level=ERROR, path=PatientDecisionTable.xls, line=10, column=0 text=[ERR 101] Line 10:21 不可行输入''的替代方案],消息 [id=2,kieBase=患者,级别=错误,路径=PatientDecisionTable.xls,行=10,列=0 文本=[ERR 101] 第 10:81 行输入'没有可行的替代方案'],消息 [id=3, kieBase=patient, level=ERROR, path=PatientDecisionTable.xls, line=0, column=0 text=Parser returned an null Package]] 在 org.drools.compiler.kie.builder。 impl.KieContainerImpl.getKieBase(KieContainerImpl.java:557) 在 org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:682) 在 org.drools.compiler.kie.builder.impl.KieContainerImpl。 com.Lab.Genomics.Run 上的 newKieSession(KieContainerImpl.java:650)。PatientRun.main(PatientRun.java:15)
我的 Main 方法包含在下面的类中:
我无法找到决策表中存在什么错误。当我运行主要方法时,如上所述出现错误。
我在这里找到了一个关于 drools 决策表的问题,decision table error,但这不是我检查的情况。
我已经尝试过搜索并且仍在尝试。非常感谢任何参考或帮助。