事件订阅
设置trigger,声明事件的接收服务代码,当事件中心收到事件时,调用接收服务,并传入事件参数
1 设置依赖
在服务中设置依赖:com.justep clients 1.0.0
2 添加服务请求
添加一个服务请求,参数是事件中心传过来的事件参数
- 请求中接收的参数是事件触发过来的消息体,json格式
- 请求必须返回ControllerResult<?>,以通知事件中心事件接收情况。包括两种情况:
- 调用ControllerResult的succeed方法,通知事件中心事件已收到
- 调用failed方法,通知事件中心收到的事件有问题,请重新派发事件
示例代码如下
import com.justep.clients.eventing.vo.ControllerResult;
import com.alibaba.fastjson.JSON;
public String eventReceive(String cloudEvent) throws Exception {
System.out.println("事件参数--"+cloudEvent);
ControllerResult<Object> controllerResult;
boolean condition = true;
if (condition) {
controllerResult = ControllerResult.succeed("成功...");
}else {
// 如果用户不想使用高可靠策略,可以使用 ControllerResult.succeed("失败...");
controllerResult = ControllerResult.failed("失败...");
}
String resultString = JSON.toJSONString(controllerResult);
return resultString;
}
运行时,tomcat中输出请求参数的内容如下,其中data是事件触发时传入的内容:
事件参数--{
"datacontenttype":"text/plain",
"data":"123",
"subject":"text--main--fuwu--eventreceive--CA19773CB5500001A9421F308C9F1560",
"specversion":"v1",
"id":"7a62cd92225e45dfa155707052d4c6c0",
"source":"eventsendchensc6",
"time":"2022-12-20 18:10:39",
"type":"text:main:fuwu:eventreceive"
}
3 设置事件订阅列表
添加定时和事件设置组件
点击页面设计器右上角的齿轮图标,点击定时和事件设置菜单
切换到事件派发设置,点新增按钮,在事件输入框中输入事件名,本例为text:main:fuwu:eventreceive,点击目标输入框右侧的...按钮,弹出request模板对话框,点击url右侧的放大镜按钮,弹出添加请求对话框,选择事件接收服务请求
点确定按钮关闭添加请求对话框,切换到源,将body改为"${cloudEvent}|json",${cloudEvent} 是事件中心eventing的系统环境变量。代码如下
{
"request": [
{
"method": "POST",
"body": "${cloudEvent}|json",
"url": "service://test/main/fuwu/eventreceive"
}
]
}
事件订阅列表信息存储在UI2/pcx目录下的timerAndTrigger.serviceMetaInfo.json文件中