- gengine从v1.2.0开始,进一步简化架构,用户只需要很少的改动,便可从老版本迁移到新版本上来.
- 从v1.2.0开始,用户也仅需关注gengine的
dataContext, ruleBuilder , engine 和GenginePool这4个API
- 从v1.2.0开始, gengine框架简化为4部分组成,调整之后,代码更易理解,更容易使用,具体直接表现在代码结构上,具体说明如下:
dataContext := context.NewDataContext()
//用户注入需要在规则代码中使用的API
dataContext.Add("println",fmt.Println)
const rule = `
rule "1" "rule-des" salience 10
begin
println("hello world, gengine!")
end
`
dataContext := context.NewDataContext()
//用户注入需要在规则代码中使用的API
dataContext.Add("println",fmt.Println)
ruleBuilder := builder.NewRuleBuilder(dataContext)
err := ruleBuilder.BuildRuleFromString(rule)
const rule = `
rule "1" "rule-des" salience 10
begin
println("hello world, gengine!")
end
`
dataContext := context.NewDataContext()
//用户注入需要在规则代码中使用的API
dataContext.Add("println",fmt.Println)
ruleBuilder := builder.NewRuleBuilder(dataContext)
err := ruleBuilder.BuildRuleFromString(rule)
eng := engine.NewGengine()
err := eng.Execute(ruleBuilder, true)
- gengine实例池,提供给用户在高QPS下使用,为了解决高并发和线程安全问题的API,具体用法在本文档的"引擎池"章节有详细叙述
- internal文件夹中的代码是gengine的核心,用户可以不必关心其实现