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 事件引擎,各种事件类型示例代码的更多相关文章
- 左右JAVA示例代码事件分发和监督机制来实现-绝对原创有用
文章标题:左右JAVA示例代码事件分发和监督机制来实现 文章地址: http://blog.csdn.net/5iasp/article/details/37054171 作者: javaboy201 ...
- javascript权威指南第13章 事件示例代码
html 部分 <!DOCTYPE html> <html> <head> <title>Event Bubling Example</title ...
- c# 使用hook来监控鼠标键盘事件的示例代码
如果这个程序在10几年前,QQ刚刚兴起的时候,有了这个代码,就可实现盗号了. 当然使用钩子我们更多的是实现"全局快捷键"的需求. 比如 程序最小化隐藏后要"某快捷键&qu ...
- WPF自定义RoutedEvent事件示例代码
************************* 引用网友,便于查找所用..... 创建自定义路由事件和应用分为6个步骤: (1)自定义路由事件参数对象 (2)声明并注册路由事件 (3)为路由事件添 ...
- SQL Server 扩展事件(Extented Events)从入门到进阶(4)——扩展事件引擎——基本概念
本文属于 SQL Server 扩展事件(Extented Events)从入门到进阶 系列 在第一二节中,我们创建了一些简单的.类似典型SQL Trace的扩展事件会话.在此过程中,介绍了很多扩展事 ...
- 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)
一. iOS 项目简介 1. iOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类 ...
- javascript 事件编程之事件(流,处理,对象,类型)
1. 事件处理 1.1. 绑定事件方式 1)行内绑定 语法: //最常用的使用方式 <元素 事件="事件处理程序"> 2)动态绑定 //结构+样式+行为分离的页面(ht ...
- Python建立时间事件引擎原理剖析
作为python小白,学习量化交易的曲线是非常陡峭的,唯一好的办法就是一点点啃代码.以下代码案例来自vnpy的引擎代码. # encoding: UTF-8 #定义时间事件 EVENT_TIMER = ...
- 从spring源码汲取营养:模仿spring事件发布机制,解耦业务代码
前言 最近在项目中做了一项优化,对业务代码进行解耦.我们部门做的是警用系统,通俗的说,可理解为110报警.一条警情,会先后经过接警员.处警调度员.一线警员,警情是需要记录每一步的日志,是要可追溯的,比 ...
随机推荐
- Python列表的remove方法的注意事项
为何没有删除列表中的全部元素? 解释: 按照执行顺序,第一个空格被删除之后,后面的元素会前移(变成['空格','空格','12','23']),指针下一次会指向新列表的第二个元素(即初始状态的第三个空 ...
- Xenomai 安装准备工作
一些安装xenomai的参考资料: http://my.oschina.net/hevakelcj/blog/124290 http://blog.sina.com.cn/s/blog_60b9ee1 ...
- Windows命令行重命名文件
RENAME D:\Cache\xyz.html xyz%date:~0,4%%date:~5,2%%date:~8,2%.tar.gz
- 搭建CAS单点登录服务器
最近公司的一个项目需要用到单点登录的功能,之前对单点登录了解得不多.于是网上找了下单点登录的解决方案,发现CAS是个不错的解决方案.于是搭个环境测试了一下.这里记录下测试的详细步骤. 官网:http: ...
- Android app主线程UI更新间歇性崩溃的问题
对App进行开发测试时,偶尔出现app崩溃的问题.日志如下: 10-25 18:44:52.935 15290-15290/com.zzq.cnblogs E/AndroidRuntime﹕ FATA ...
- HDU1005&&NEFU67 没有循环节
Number Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- [Android Pro] proguard.cfg 配置文件
转载自:http://my.oschina.net/zhangzhihao/blog/72393 # ------------------------------------- # android 原 ...
- Vim的文件加密
X----->(大写的X)是加密 取消文件密码:进入文件编辑模式 重复vim加密 只是输入密码时为空(直接回车)--->:w ~ Warning: Using a weak encrypt ...
- mysql中char,varchar与text类型的区别和选用
关于char,varchar与text平时没有太在意,一般来说,可能现在大家都是用varchar.但是当要存储的内容比较大时,究竟是选择varchar还是text呢?不知道...... 于是去查阅了一 ...
- 用VMware 11.0虚拟机安装Win8 系统失败,提示“shsucdx can't install”
研究了好久,网上那些更改bios的方法根本行不通,因为该版本的biso根本没有SATA选项!解决方法很简单,如下图: 重启虚拟机即可.