Coup de Grace

你是不是需要规则引擎

最近逛Github时发现了这么个库.

一时间觉得自己以前貌似接触过某蚁的规则平台,当时也就这么点东西,只是当时年轻,没有深入去翻翻里面的代码.

那么规则引擎:


淘宝的数加利用规则引擎意在支持的场景:

以上的场景我觉得总有一天也会用到,所以暂时积累一点内容.

传统的jbpm系的东西真是让人看起来压力很大,activiti到现在有些东西我都没法很好的理解.

所以drools我就不去接触了.

我们这次的主角: EastRules.

我觉得目前是需要一些改进,将POJO部分修改成支持脚本语言,动态调整规则是很必要的.


这里有一个很简单的FuzzBuzz例子.

通过定义如下形式的Rule.设置了条件,动作与优先级.

而后注册到引擎中执行一串数据流入.

@Rule
public class FizzRule {

    private int input;

    @Condition
    public boolean isFizz() {
        return input % 5 == 0;
    }

    @Action
    public void printFizz() {
        System.out.print("fizz");
    }

    public void setInput(int input) {
        this.input = input;
    }

    @Priority
    public int getPriority() {
        return 1;
    }
}

以上是一个简单例子,同理我们可以联想到跟以上部分结合的点:


最后是打算做一下这个框架的源码解读.

敬请期待.

done.