`
sunxboy
  • 浏览: 2869356 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Drools5.0的xls文件转drl文件提升解析效率

 
阅读更多

  drools中,支持的常见文件类型有drl(drools的规则语言),xls,cvs,rf(规则流文件),drt(drools rule template),在简单的应用中,一般只会使用drl和xls的文件,为了方便业务人员和维护人员能够配置规则文件,一般的规则文件都是由程序员做成execl文件,这样一来,添加相关的配置就很傻瓜了。但是这样做会影响到程序运行的效率,我们做一个测试。

 

    规则文件:base.xls 包含了 rule.xls和simple.xls;在rule.xls中包括了credit.xls,为了读取credit.xls中的规则对象,则需要对base.xls ,rule.xls,credit.xls三个execl文件解析,读取规则对象结果合计耗时:

    读取规则文件耗时——————–13484毫秒

    在drools5.0中,org.drools.decisiontable.SpreadsheetCompiler这个类可以把xls文件流转化为drl的String对象,通过FileWriter来写成drl文件,相关的转换代码是:
public String drlString(String file,String toDir) throws Exception{
        SpreadsheetCompiler sc = new SpreadsheetCompiler();
        File f = new File(file);
        String fileName = f.getName();
        String name = fileName.substring(0,fileName.lastIndexOf("."));
        FileInputStream xlsStream = new FileInputStream(f);
        String drlFileTmp = sc.compile(xlsStream, InputType.XLS);
        drlFileTmp.replaceAll(".xls", ".drl");
        File drlFile = new File(toDir + "/" + name + ".drl");
        FileWriter writer = new FileWriter(drlFile);
        writer.write(drlFileTmp);
        writer.close();
        return drlFileTmp;
}
  把execl解析成为drl文件后,读取规则对象结果合计耗时:

  读取规则文件耗时——————--7579毫秒

    从数据上看,几乎节省了一半的时间开销。当然,7.6秒仍然不是一个可以接受的数字,需要继续优化。我们需要在系统打版本的时候,就把xls规则文件转换为drl规则文件,然后我们在系统启动的时候,把规则对象通过oscache缓存在内存中。如果没有该对象则重新从规则文件中读取,有的话直接从内存读取,这样一来,读取规则对象消耗的时间几乎为0。这里把xls转化为drl文件只是为了加速系统的启动。

分享到:
评论

相关推荐

    drools 5.0 src

    2. **核心文件解析** - `pom.xml`:Maven 项目的配置文件,定义了项目依赖、构建过程和打包规则,通过它可以了解 Drools 5.0 的构建系统和依赖库。 - `LICENSE-ASL-2.0.txt`:Apache Software License 2.0,...

    ole-drools-xls2drl:用于将Excel电子表格转换为Drools DRL文件的简单Java应用程序

    ole-drools-xls2drl 用于将Excel电子表格转换为Drools DRL文件的简单Java应用程序。 尽管此应用程序可以将任何格式正确的Excel电子表格转换为Drools DRL文件,但它主要用于为Kuali OLE(开放图书馆环境)应用程序...

    drools 5.0完整组件打包压缩文档 drools-5.0-bin.zip

    这个压缩包“drools-5.0-bin.zip”包含了Drools 5.0版本的所有核心组件和必要的库,使得开发者能够方便地集成和使用Drools进行规则驱动的系统开发。 1. **drools-core-5.0.1.jar**: 这是Drools的核心模块,提供了...

    idea开发drools的设置文件

    - **规则引擎**:Drools 引擎负责解析 DRL 文件,执行规则,并更新工作内存中的事实。 ** 编写和执行 Drools 规则 ** 在 IDEA 中编写完 DRL 文件后,你需要创建一个 Drools 工程,将 DRL 文件添加进去。接着,通过...

    Drools 5.0 API

    2. **规则引擎**:Drools的核心是一个规则引擎,它负责解析、编译和执行DRL规则。当满足特定条件时,引擎会触发相应的规则。 3. **工作内存(Working Memory)**:在Drools中,工作内存是数据存储和处理的主要场所...

    drools5.0 flow

    标题:drools5.0 flow ### 知识点概览: Drools 5.0 Flow 是一款基于 Java 的业务规则管理系统(BRMS),它提供了强大的规则引擎、流程管理和决策表工具,允许开发者和业务专家在一个统一的环境中定义、执行和管理...

    drools动态生成规则文件

    Drools的规则通常存储在.drl文件中,这是一种文本格式,包含了规则定义。这些规则可以包括条件(当什么发生时)和动作(应该做什么)。动态生成规则文件意味着在程序运行时,可以根据需求动态创建或修改这些.drl文件...

    我的drools2

    1. drools-5.0-bin.zip:这是Drools 5.0的基础运行时包,包含所有必要的JAR文件、文档以及示例代码,用于在Java环境中运行Drools。用户可以通过这个包快速地开始开发基于Drools的应用。包内通常会有以下内容: - ...

    springboot集成drools实现重新加载规则

    接下来,我们需要创建Drools的规则文件(`.drl`),该文件包含了业务规则的定义。例如: ```drl package com.example.rules import com.example.model.MyObject; rule "Example Rule" when $myObject : MyObject...

    Drools JBoss Rules 5.0 Developer's Guide

    ### Drools JBoss Rules 5.0 Developer's Guide #### 概述 《Drools JBoss Rules 5.0 Developer's Guide》是一本专为希望利用Drools平台开发基于规则的业务逻辑的开发者而编写的指南。本书由Michal Bali撰写,于...

    Drools workbench文件及DEMO项目代码

    Drools工作台(Drools Workbench)是一款基于规则引擎Drools的集成开发环境,主要用于创建、测试和...通过对这些概念的理解和实践,你将能够熟练掌握Drools Workbench的使用,从而在业务规则管理方面提升效率和灵活性。

    DROOLS语法详解

    DROOLS规则语言(DRL)是一种基于Java的领域特定语言(DSL),用于编写业务规则。本文档将详细介绍DROOLS的基本语法结构及其各个组成部分。 #### 二、DROOLS基本语法结构 DROOLS的基本语法结构由以下几个关键部分...

    drools tomcat 配置文件

    drools里面的 bin和config和lib文件,已经可以跑,中接有 drools web 和kie service

    Drools规则引擎从入门到精通源码

    从基础讲起,结合应用场景,由浅到深细化讲解drools规则引擎的的相关知识,并结合具体实例,演示功能的使用和注意事项。后面通过搭建具体的项目并结合springboot框架联合使用Drools的相关知识包括决策表的使用,囊括...

    drools决策表模版.xls

    drools决策表模版

    Drools规则引擎介绍

    总结来说,Drools规则引擎是一个强大的工具,它能够帮助企业和开发者将复杂的业务逻辑转化为易于管理的规则,通过灵活的规则执行和流程控制,提升业务系统的智能化水平。通过深入学习和实践,我们可以充分利用Drools...

    drools drools drools drools drools

    总而言之,drools 是一个强大且灵活的业务规则管理工具,它提供了一套完整的框架来定义、管理和执行业务规则,帮助企业快速响应业务变化,提高决策效率。通过阅读LICENSE文件了解许可条款,查看README确定依赖,以及...

    规则引擎Drools在J2EE项目开发中的应用

    在J2EE项目开发中,规则引擎Drools扮演着重要的角色,它是一个开源的业务规则管理系统(BRMS),能够帮助开发者将业务规则从应用程序逻辑中...通过深入学习,你将掌握如何利用Drools提升业务规则管理的效率和灵活性。

    Drools安装配置学习笔记.doc

    Drools是一款强大的规则引擎,它允许开发者使用自然语言规则来编写业务逻辑,极大地提高了代码的可读性和可维护性。...学习并掌握Drools的安装配置和使用,对提升企业业务系统的智能化和自动化水平具有重要意义。

Global site tag (gtag.js) - Google Analytics