EsperQuick Start
这篇文章的主要目的是了解如何创建一个Esper 并运行一个简单的代码。
1>去http://www.espertech.com/esper/download.php
下载Esper 的lib 加载到测试代码的项目中,或者使用Maven来配置开发环境.
2> 创建一个java 的Event 类
public class OrderEvent { private String itemName; private double price; public OrderEvent(String itemName, double price) { this.itemName = itemName; this.price = price; } public String getItemName() { return itemName; } public double getPrice() { return price; } }
3>设置Esper
import com.espertech.esper.client.EPAdministrator; 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; public class EsperQuickStart1 { public static void main(String[] agrs){ // 设置Esper Service EPServiceProvider epService = EPServiceProviderManager.getDefaultProvider(); EPAdministrator admin = epService.getEPAdministrator(); // 注册 event type String OrderEvent = OrderEvent.class.getName(); admin.getConfiguration().addEventType("OrderEvent", OrderEvent); // 创建一个EPL(Event Processing Language) String expression = "select avg(price)from OrderEvent.win:time(30 sec)"; // 将这个EPL 注册到Esper 中。 EPStatement statement = epService.getEPAdministrator().createEPL(expression); // 实例化一个 listener MyListener listerner = new MyListener(); //向这个EPL中添加 listener 当满足 EPL的条件时 会触发listener 完成listener中的内容 statement.addListener(listerner); //实例化Order Event OrderEvent event = new OrderEvent("shirt", 74.50); //向 Esper 发送Event epService.getEPRuntime().sendEvent(event); } } class MyListener implements UpdateListener{ public void update(EventBean[] newEvents,EventBean[] oldEvents){ //UpdateListenner 中将Event 看做是一种bean 具体会在之后的章节中做详细介绍 EventBean event = newEvents[0]; System.out.println("avg = "+event.get("avg(price)")); } }
运行结果: