当前位置: 首页 > 知识库问答 >
问题:

Drools:在运行时添加和删除规则

漆雕深
2023-03-14

有没有什么方法可以动态编辑加载到Drools中的规则,而不需要重新加载新的DRL文件?

我们试图使用Drools作为规则引擎,但在我们的用例中,规则的添加和删除非常频繁,我们希望避免每次发生这种情况时都必须重新加载整个.drl文件。

共有1个答案

酆鸿彩
2023-03-14

文档中的建议是将规则分散到多个文件中:https://docs.jboss.org/drools/release/5.2.0.final/drools-expert-docs/html/ch05.html#D0E2785

...还可以将规则分散到多个规则文件中(在这种情况下,建议使用扩展名。rule,但不是必需的)--在文件中分散规则有助于管理大量规则。

建议您将规则分成逻辑组,一起更改,或者如果这样更合适的话,每个文件一个规则。

 类似资料:
  • 所以我对Java Swing GUI是新手,我正在创建一个学生管理系统。这个想法是,当程序启动时,屏幕上的每个模块都有一个按钮,单击每个按钮会将您带到另一个包含模块信息的窗口。我想要一个能够添加和删除模块的功能,所以我的想法是,在运行时,您可以添加一个代表新模块的新按钮,或者在您想要删除该模块时删除一个按钮。 我已经尝试了许多不同的东西,但我遇到的问题最多的是我可以创建按钮,但我不能将其添加到框架

  • 问题内容: 到目前为止,我还没有找到在Drools 6.0.0中将规则添加到正在运行的KieSession的最佳方法(即以最小的开销),而仍然将我的事实保留在KieSession中。在Drools 5中,当更改KBase时更新了KSession,但对于Drools 6而言却并非如此,因为我的规则未在KieBase中创建。有没有一种方法可以替换整个KieFileSystem中的整个KieModule

  • 问题内容: 我的应用程序有一个模块,允许用户在运行时在jLayeredpane上添加jButton。我想向此动态添加的内容添加动作侦听器,而且我还必须提供在运行时删除动态添加的按钮的访问权限。有什么办法吗? 问题答案: 原始答案 总体上不错,但是在这种情况下做的却不同 为了跟踪添加的任意数量,您需要将它们保留在列表中。 因此,在创建新按钮之后,将侦听器添加到该按钮,然后将其添加到窗格中,然后需要将

  • 我正在开始一个项目,流口水和口水guvnor。 我的规则部署在drools Guvnor中。我的规则引擎实例可以通过drools Guvnor公开的pkg文件访问这些规则,当您进行包发布、构建和发布时。 这一切都很好,我正在寻找的是在运行时禁用规则的解决方案。 我现在唯一的解决方案是去guvnor,归档规则,并对包含该规则的包进行构建+发布。 不是还有别的策略吗?

  • 到目前为止,我还不知道在Drools 6.0.0中向正在运行的Kie会话添加规则并仍然将我的事实保存在Kie会话中的最佳方法(意味着以最小的开销)。在Drools 5中,当KBase更改时,K会话会更新,但Drools 6似乎并非如此,因为我的规则不是在KieBase中创建的。有没有一种方法可以在不更换KieFileSystem中的整个KieModules或Jars的情况下做到这一点。我认为应该有

  • 问题内容: 是否可以在运行时从Java枚举中添加和删除元素? 例如,我可以从文件中读取枚举的标签和构造函数参数吗? 问题答案: 不,枚举应该是完整的静态枚举。 在编译时,你可能希望从某种形式的另一个源文件生成enum 文件。你甚至可以创建这样的文件。 在某些情况下,你可能需要一组标准值,但允许扩展。常用的方法是为接口提供一个为标准值实现一个。当然,当你仅引用时,你将失去的能力。