快速开始
# 安装
使用go get
命令安装RuleGo
:
go get github.com/rulego/rulego
1
# 使用
首先使用Json格式定义规则链。规则链的定义不需要学习特定的规则语法或者DSL,只需配置组件,并把他们通过一定的关系连接起来,即可实现你的功能需求。参考规则链
RuleGo 使用极其简单和轻量级。只需以下2步:
- 导入
RuleGo
包,并使用规则链定义,创建一个规则引擎实例:
import "github.com/rulego/rulego"
//使用规则链定义,创建一个规则引擎实例
ruleEngine, err := rulego.New("rule01", []byte(ruleFile))
1
2
3
4
2
3
4
- 把消息负荷、消息类型、消息元数据交给规则引擎实例处理,然后规则引擎就会根据规则链的定义处理消息:
//定义消息元数据
metaData := types.NewMetadata()
metaData.PutValue("productType", "test01")
//定义消息负荷和消息类型
msg := types.NewMsg(0, "TELEMETRY_MSG", types.JSON, metaData, "{\"temperature\":35}")
//把消息交给规则引擎处理
ruleEngine.OnMsg(msg)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
规则引擎实例管理:
//通过规则链ID获取已经创建的规则引擎实例
ruleEngine, ok := rulego.Get("rule01")
//删除已经创建的规则引擎实例
rulego.Del("rule01")
1
2
3
4
2
3
4
# 示例
你可以运行examples/server
示例工程加快理解RuleGo的使用。
下载地址:Github (opens new window) Gitee (opens new window)
# 小结
RuleGo 使用极其简单和轻量级。只需以下2步:
- 1.使用Json格式的规则链定义业务逻辑,并根据该规则链初始化规则引擎。
- 2.然后把消息或者事件交给规则引擎实例,每条消息或者事件就会按照规则链定义的逻辑进行处理,规则链支持热更新。
RuleGo 虽然轻但很强大,我们继续阅读其他章节往下探索......
在 GitHub 上编辑此页 (opens new window)
上次更新: 2024/10/23, 10:13:01