Esper[1] Quick Start

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)"));
	}
}




运行结果:


猜你喜欢

转载自blog.csdn.net/pcjdpcq/article/details/68210949