Giter VIP home page Giter VIP logo

fast-drools-spring-boot-starter's Introduction

Fast Drools 中文

FastDroolsLogo

Build Status LICENSE Language Average time to resolve an issue Percentage of issues still open

Introduction

fast-drools-spring-boot-starter integrates Drools with Springboot providing a more efficient, sophisticated model for rule configuration and management. It is capable of updating rules dynamically with regards to hot deployment.

Contact

Feel free to ask me any questions with the contacts below.

FAQ

Usage

  • 1)Inject the following dependency in pom.xmlupdate 2021/01/20):

    <dependency>
        <groupId>com.github.hongwen1993</groupId>
        <artifactId>fast-drools-spring-boot-starter</artifactId>
        <version>8.0.9</version>
    </dependency>
  • 2)Designate path to drools rule file in the configruation file

    # (necessary) specify a rule file folder that will automatically scan all rule files, include  decision tables, and CSV files, 
    # also support classpath resource path, example:classpath:drools/**/*.drl
    # win system use \\, example C:\\DRL\\
    # linux system use /, example /var/config/
    spring.drools.path = C:\\DRL\\
    # set up mode with options "stream" or "cloud" (default = stream)
    spring.drools.mode = stream
    # close drl file auto update, on or off (default = on)
    spring.drools.auto-update = on
    # regulates update cycle, unit is seconds (default = 30)
    spring.drools.update = 10
    # monitoring rules, on or off (default = on)
    spring.drools.listener = on
    # open drl syntax checker, on or off (default = off)
    spring.drools.verify = off
    # default drl file charset(default utf-8)
    spring.drools.charset = GBK
  • 3)Introduce KieTemplate with annotation

    @Autowired
    private KieTemplate kieTemplate;
  • 4)Session can be acquired with getKieSession(). Supporting multiple rule files at the same time as well as decisions tables.

    KieSession kieSession = kieTemplate.getKieSession("rule1.drl", "rule2.drl");
    ......
  • 5)Results

    2020-09-10 16:51:08.344 DEBUG ===>>开始更新规则文件
    2020-09-10 16:51:09.730 DEBUG ===>>插入对象:[fact 0:1:1571707504:1072693248:1:DEFAULT:NON_TRAIT:java.lang.Double:1.0];操作规则:null
    2020-09-10 16:51:09.748 DEBUG ===>>匹配的规则:[Rule name=规则1-1, agendaGroup=MAIN, salience=0, no-loop=false]
    2020-09-10 16:51:09.761 DEBUG ===>>开始执行Java代码块,匹配规则:[Rule name=规则1-1, agendaGroup=MAIN, salience=0, no-loop=false],评估对象:[[fact 0:1:1571707504:1072693248:1:DEFAULT:NON_TRAIT:java.lang.Double:1.0]]
    .... 执行过程忽略 ....
    2020-09-10 16:51:09.765 DEBUG ===>>结束执行Java代码块,匹配规则:[Rule name=规则1-1, agendaGroup=MAIN, salience=0, no-loop=false],评估对象:[[fact 0:1:1571707504:1072693248:1:DEFAULT:NON_TRAIT:java.lang.Double:1.0]]

(KieTemplate 下封装了许多 Drools 的功能,许多便捷的 API 等你来发现!)

Available Features

  • Quick start with Drools-Springboot integration without having to go through the complex configuration process in kmodule.xml
  • Specify filenames to perform evaluation rules for more intuitive process analysis.
  • Dynamically loads the rules file
  • Group rule file
  • NIO file mapping for faster file reads and writes
  • Use caching to improve rule evaluation
  • Support for various path formats
  • Supports rule table files in XLS and XLSX formats
  • Logging monitors the dynamics of rules and evaluation objects in the process
  • Extreme execution speed and performance, and customizable

Features in Progress

  • Rule execution monitoring
  • Distributed based assessment and decision making
  • Rule execution success failure rate statistics
  • GUI control for rule files
  • GUI control for decision tables
  • Storage of distributed rule files

License

Apache 2.0

User List

If you are using fast-drools and think that it helps you or want do some contributions to it, please call me to let us know just for promotional purposes only.

## Stargazers over time

Stargazers over time

fast-drools-spring-boot-starter's People

Contributors

hongwen1993 avatar lkx19950811 avatar quqiangsheng avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.