事件订阅

设置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文件中

results matching ""

    No results matching ""

    results matching ""

      No results matching ""