规则引擎drools如何整合spring,drl文件一般放在什么地方??

开源中国-总书记 发布于 2015/05/14 10:42
阅读 3K+
收藏 0
初学drools,好多不明白的地方,求大神 大牛 教育
加载中
0
开源中国-总书记
开源中国-总书记
就没有这方面的大牛吗?百度已经无力啊
0
xuerscc
xuerscc
我也在研究  发现压根就没有执行drl文件的规则
开源中国-总书记
开源中国-总书记
最新的一个版本可以使用execl指定规则,但是这方面的资料太少了
0
xuerscc
xuerscc
你说的是6.3吗
开源中国-总书记
开源中国-总书记
对,就是
0
追峰路
追峰路

最近在做Drools6.3集成Spring,简直是噩梦啊。

谁知道在Web应用中如何存放drl文件,我这里一启动就报错,它为啥去读zip文件,我明明在classes根目录存放的是drl文件:java.lang.RuntimeException: Unable to get all ZipFile entries: \Users\**\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\drools-scm\WEB-INF\classes


0
F
FruitTree

drl文件可以持久化到数据库中,然后写个加载执行的引擎,这样可以很灵活的结合实际业务。

以我的项目为例,供参考:

先写规则模板,采用velocity解析,通过规则解析后,生产规则文件,规则文件就是drools文件。

规则模板和规则文件统一持久化到数据库中。

F
FruitTree
回复 @Freeman211314 : 隔一个小时加载一次是非常不严谨的,除非这个规则不是很重要,要不然绝对不能这么干。建议采用缓存机制,如果缓存中找不到规则,则从数据库中直接加载,如果更新了规则,可以自动删除缓存或者自动更新缓存。缓存的颗粒度可由具体项目而定。
F
Freeman211314
回复 @ahdkk : 你可以用个while循环,隔1h加载一次,保存到内存map中
F
FruitTree
把drl文件内容,保存到数据库的varchar字段中即可,然后加载的时候以流的形式读取出来。 全部都是自动的。
L-CQ
L-CQ
请问,如何将drl文件持久化到数据库中呢,还有加载执行的引擎,这个如何实现?刚刚接触drools,有点没有头绪。
F
FruitTree
回复 @ahdkk : 规则生成完了以后,肯定是程序自动加载的,不存在手动加载的情况。 这要配合自己写的加载程序。 比如规则文件和项目是绑定的。 那服务器一启动,会把项目和项目下的所有规则组织到Map中。 后期一旦有该项目下的规则文件更新了,则自动更新该Map即可。不知道这样回答,对你有帮助吗?
下一页
返回顶部
顶部