Esper的POJO事件处理
来源:互联网 发布:java编程思想视频网盘 编辑:程序博客网 时间:2024/06/05 20:59
最近也在忙于公司产品的报警模块的功能开发,主要用到的就是esper事件处理引擎。关于Esper的理解见博客《对Esper的理解》,这几篇博客也说说esper支持的几种事件类型。这篇博客介绍一下关于POJO对象事件的支持。
POJO对象的概念就不再赘述了,具体见POJO百科。
Esper对于POJO的支持是有一些要求,即对每一个POJO的私有属性必须有getter方法,具体的POJO对象见下面的代码,
public class Apple {private int id;private int price;public int getId() {return id;}public void setId(int id) {this.id = id;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}}
有了POJO类之后,需要做的操作就是打开Esper的事件监听,并且要完成具体POJO对象的EPL语句,具体的代码如下:
public class AppleListener implements UpdateListener {@Overridepublic void update(EventBean[] newEvents, EventBean[] oldEvents) {if (newEvents != null) {Double avg = (Double) newEvents[0].get("avg(price)");System.out.println("Apple's average price is " + avg);}}}String product = Apple.class.getName();String epl = "select avg(price) from " + product+ ".win:length_batch(3)";
有了这两个关键的代码之后,就需要进行测试引擎执行POJO事件了。这时候我们需要将几个POJO类实现,并且将POJO对象传入到引擎中,
EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider();EPAdministrator admin = epService.getEPAdministrator();EPStatement state = admin.createEPL(epl);state.addListener(new AppleListener());EPRuntime runtime = epService.getEPRuntime();Apple apple1 = new Apple();apple1.setId(1);apple1.setPrice(5);runtime.sendEvent(apple1);Apple apple2 = new Apple();apple1.setId(2);apple1.setPrice(2);runtime.sendEvent(apple2);Apple apple3 = new Apple();apple1.setId(3);apple1.setPrice(5);runtime.sendEvent(apple3);
之后执行就能输出一下的结果:
其实Esper事件处理引擎是非常简单的,开启引擎,加载相应的EPL语句进行监听,如果有POJO对象进来就会进行EPL语句执行,如果符合条件就会输出。只要能够把EPL语句写好,基本上Esper引擎也就会用了。下一篇介绍POJO对象嵌套事件的处理。
0 0
- Esper的POJO事件处理
- Esper处理嵌套POJO事件
- Esper处理Map事件
- Esper事件处理引擎_1_JavaBean 数据结构处理
- Esper事件处理引擎_2_Map 数据结构处理
- Esper事件处理引擎_4_XML 数据结构处理
- 复杂事件处理引擎—Esper入门
- Esper事件处理引擎_16_EPL 语法_8_NamedWindow
- esper(复杂事件处理引擎)简介
- Esper事件处理引擎_11_EPL 语法_4_InsertInto 流对流的插入操作
- 复杂事件处理引擎—Esper参考(事件部分)
- 复杂事件处理引擎—Esper 处理模型
- Esper事件处理引擎_3_ObjectArray对象数组 数据结构处理
- Esper 开发之小试 事件流处理
- 复杂事件处理引擎—Esper工作原理
- 复杂事件处理——Esper入门(示例程序)
- 复杂事件处理——Esper入门(示例程序)
- Esper事件处理引擎_5_EPL 语法_1_基本语法
- Learning theory 机器学习原理
- python设计模式实现 -- 观察者模式
- 对最小化安装的CentOS补装图形界面
- 一、XML基本语法
- 带与不带缓冲的I/O
- Esper的POJO事件处理
- 2014年2月20号,财经会客厅,万科王石解析李嘉诚抛售地产及预测房价即将见顶!
- C++类模板template
- ExtMvc store不能通过xtype选择器得到的办法
- 二、XML与Java类映射JAXB
- Mysql原理及主从架构
- HDU 3483 A Very Simple Problem ---矩阵快速幂
- HttpUrlContext 简单实用2
- 常见的图片格式