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 事件引擎,各种事件类型示例代码的主要内容,如果未能解决你的问题,请参考以下文章
Lightning Web Component 事件代码示例
Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段