这一章我们学一下怎样快速使用 RuleGo。RuleGo 使用极其简单,把数据往规则链引擎扔,然后规则链引擎就会根据规则链配置高效处理数据。
安装
使用go get
命令安装RuleGo
:
go get github.com/rulego/rulego
使用
首先使用Json格式定义规则链。规则链的定义不需要学习特定的规则语法或者DSL,只要配置组件,并把他们通过一定的关系连接起来,即可实现你的功能需求。参考规则链
导入RuleGo
包并创建一个规则引擎实例:
import "github.com/rulego/rulego"
//创建一个规则引擎实例,每个规则引擎实例有且只有一个根规则链
ruleEngine, err := rulego.New("rule01", []byte(ruleFile))
把消息、消息类型、消息元数据交给规则引擎实例处理,然后消息就会根据配置的规则链逻辑进行处理:
//定义消息元数据
metaData := types.NewMetadata()
metaData.PutValue("productType", "test01")
//定义消息内容和消息类型
msg := types.NewMsg(0, "TELEMETRY_MSG", types.JSON, metaData, "{\"temperature\":35}")
//把消息交给规则引擎处理
ruleEngine.OnMsg(msg)
规则引擎实例管理:
//通过规则链ID获取已经创建的规则引擎实例
ruleEngine, ok := rulego.Get("rule01")
//删除已经创建的规则引擎实例
rulego.Del("rule01")
小结
RuleGo 使用极其简单和轻量级。只需以下2步:
- 1.使用Json格式的规则链定义业务逻辑,并根据该规则链初始化规则引擎。
- 2.然后把消息或者事件交给规则引擎实例,每条消息或者事件就会按照规则链定义的逻辑进行处理,规则链支持热更新。
RuleGo 虽然轻但很强大,我们继续阅读其他章节往下探索…