写点什么

自研规则 / 流程引擎 -ice 接入

发布于: 18 小时前

初期比较简陋...持续改进中

ice 简介:ice简介

文档地址:http://waitmoon.com/docs

配置体验地址:http://waitmoon.com (目前前端待改善,白屏较久)

准备工作

RabbitMq&Mysql

安装 rabbitmq 用于配置拉取与更新


安装 mysql 用于存储配置,并导入表结构

https://github.com/zjn-zjn/ice/blob/master/ice-server/src/main/resources/ice.sql

Server 部署

1.下载 jar

https://repo1.maven.org/maven2/com/waitmoon/ice/ice-server/0.0.4/ice-server-0.0.4.jar


2.新增编辑 application-dev.yml


#端口server:  port: 8000spring:  rabbitmq:    port: 5672    host: localhost    username: guest    password: guest  datasource:    url: jdbc:mysql://127.0.0.1:3306/ice?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai    username: zjn    password: zjnzjnenvironment: dev
复制代码


修改其中的 rabbitmq 和 mysql 配置


4.启动 server


nohup java -jar ice-server-0.0.4.jar --spring.profiles.active=dev 2>&1 &
复制代码


5.增加 app


在 ice_app 表中插入 app 信息,如:


6.打开配置页面


http://localhost:8000 (第一次进去会因为加载 js 白屏较久,也不能刷新..优化中(不会写前端...))


7.示例配置


http://waitmoon.com (第一次进去会因为加载 js 白屏较久,也不能刷新..优化中(不会写前端...))

Client 接入

参考 github ice-test 模块


1.增加 pom 依赖


  <dependency>    <groupId>com.waitmoon.ice</groupId>    <artifactId>ice-client-spring-boot-starter</artifactId>    <version>0.0.4</version>  </dependency>
复制代码


2.增加 ice 配置


ice:  app: 1  rabbit:    port: 5672    host: localhost    username: guest    password: guest    reply-timeout: 10000
复制代码


其中 app:与 ice_app 表中 id 相同


rabbit 配置与 server 相同

Client 使用

参考 github ice-test 模块

开发节点

todo...

编排节点

todo...

配置触发

1.组装 IcePack


2.调用 IceClient.process(IcePack pack)


3.举例


POST 请求

http://www.waitmoon.com/ice-test/test


入参 body(IcePack):


{    "iceId":1, //触发的ID(ice_base的id) 优先触发    "scene":"recharge", //iceId不存在时优先 触发所有监听此场景的handler    "confId":1, //触发的配置ID(ice_conf的id) iceId和scene都不存在时触发 将此confId作为root触发    "roam":{ //IceRoam 游离字段 类似于Drools等的Fact对象 存放业务字段供后续编排使用        "spend":80, //自定义业务-充值金额        "uid":1 //自定义业务-用户ID    },    "requestTime":1633449600000, //请求时间 默认当前时间    "traceId":"Jcl_kQ2mdSHIBm6ufC_EQc" //链路ID 不填默认生成}
复制代码


response(List<IceContext>):


[    {        "iceId": 1, //触发的iceId        "iceTime": 1625195223010, //进入ice执行时间        "pack": { //IcePack            "iceId": 1,            "requestTime": 1633449600000,            "roam": { //IceRoam 存放业务字段                "uid": 1,                "SEND_POINT": true, //业务自定义放置的字段(如查询是否是会员,将查询结果放入roam供后续节点使用)                "spend": 80            },            "traceId": "Jcl_kQ2mdSHIBm6ufC_EQc",        },        //执行过程[confId:节点名:返回结果:执行时间]        "processInfo": "[2:TimeChangeNone:N:0][6:ScoreFlow:F:0][4:And:F:0][8:ScoreFlow:T:0][9:PointResult:T:1][5:And:T:1][3:Any:T:1][1:None:N:1]"    }]
复制代码

Server 使用

发布于: 18 小时前阅读数: 15
用户头像

编排规则的憨憨~ 2020.03.30 加入

来都来了,坐下喝茶~看看ice~~

评论

发布
暂无评论
自研规则/流程引擎-ice接入