esper 事件引擎,各种事件类型示例代码

Posted Yudar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了esper 事件引擎,各种事件类型示例代码相关的知识,希望对你有一定的参考价值。

原创文章 转载请注明出处

package com.hp.iot.engine.esper;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.espertech.esper.client.EPAdministrator;
import com.espertech.esper.client.EPRuntime;
import com.espertech.esper.client.EPServiceProvider;
import com.espertech.esper.client.EPServiceProviderManager;
import com.espertech.esper.client.EPStatement;
import com.espertech.esper.client.EventBean;
import com.espertech.esper.client.UpdateListener;
import org.springframework.context.support.FileSystemXmlApplicationContext;

public class EsperTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();

        EPAdministrator admin = epService.getEPAdministrator();
        Map<String, Object> address = new HashMap<String, Object>();
        Map<String, Object> Person = new HashMap<String, Object>();
        Map<String, Object> children = new HashMap<String, Object>();
        children.put("name", String.class);
        children.put("age", int.class);

        admin.getConfiguration().addEventType("children_test", children);

        address.put("road", String.class);
        address.put("buildnum", int.class);
        address.put("host", String.class);
        admin.getConfiguration().addEventType("address_test", address);


        Person.put("name", String.class);
        Person.put("age", int.class);
        Person.put("addr", "address_test");
        Person.put("children", "children_test[]");
        admin.getConfiguration().addEventType("person_test", Person);


        String epl = "select * from person_test where addr.road=\"r1\"";


        EPStatement state = admin.createEPL(epl);
        state.addListener(new UpdateListener() {

            public void update(EventBean[] paramArrayOfEventBean1, EventBean[] paramArrayOfEventBean2) {
                // TODO Auto-generated method stub
                System.out.println("test %%%%%%%%%%%%%");
                String json = JSON.toJSONString(paramArrayOfEventBean1[0]);
                System.out.println("json %%%%%%%%%%%%%" + json);

            }
        });

        String epl2 = "select * from person_test where children[1].name=\"ch2\"";

        EPStatement state2 = admin.createEPL(epl2, "ep2", null);
        System.out.println("----------------------" + state2.getText());
        state2.addListener(new UpdateListener() {

            public void update(EventBean[] paramArrayOfEventBean1, EventBean[] paramArrayOfEventBean2) {
                // TODO Auto-generated method stub
                System.out.println("index ############");
                String json = JSON.toJSONString(paramArrayOfEventBean1[0]);
                System.out.println("json ############" + json);

            }
        });

        String epl3 = "select * from person_test";
        EPStatement state3 = admin.createEPL(epl3, "epl3", null);
        System.out.println("----------------------" + state2.getText());
        state2.addListener(new UpdateListener() {

            public void update(EventBean[] paramArrayOfEventBean1, EventBean[] paramArrayOfEventBean2) {
                // TODO Auto-generated method stub
                System.out.println("------------------epl 3");
            }
        });


        EPRuntime runtime = epService.getEPRuntime();

        Map<String, Object> add = new HashMap<String, Object>();
        add.put("road", "r1");
        add.put("buildnum", 2);
        add.put("host", "host1");

        Map<String, Object> ch1 = new HashMap<String, Object>();
        ch1.put("name", "ch1");
        ch1.put("age", 2);

        Map<String, Object> ch2 = new HashMap<String, Object>();
        ch2.put("name", "ch2");
        ch2.put("age", 2);

        Map[] child = new HashMap[2];
        child[0] = ch1;
        child[1] = ch2;

        Map<String, Object> per = new HashMap<String, Object>();
        per.put("name", "roger");
        per.put("age", 2);
        per.put("addr", add);
        per.put("children", child);
        runtime.sendEvent(per, "person_test");

     
    }

}

 

以上是关于esper 事件引擎,各种事件类型示例代码的主要内容,如果未能解决你的问题,请参考以下文章

esper 基于事件开始时间的固定窗口

esper(4-5)- Context 条件

Esper epl语句实验

Lightning Web Component 事件代码示例

风控系统之CEP - Esper还是Flink?

Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段