com.espertech.esper.client.Configuration config = new com.espertech.esper.client.Configuration();
该对象应该是esper的配置类,可以通过 config.addEventType(“StockTick”, Tick.class); 配置指定的事件类,或者通过config.addEventTypeAutoName(“com.richway”); 仅指定事件类的包,(被坑的好惨)如下代码
config.addEventType(“StockTick”, Tick.class);
EPServiceProvider cep = EPServiceProviderManager.getDefaultProvider(config);
或
config.addEventTypeAutoName(“com.richway”); //(指定包名)
EPServiceProvider cep = EPServiceProviderManager.getProvider(“com.richway”,config);
在些这段代码的时候发现如果是指定包名,那么addEventTypeAutoName(“com.richway”); 中的参数与getProvider(“com.richway”,config);中的包名需要一致,,下面贴一下demo的完整代码
package com.richway;
import java.util.Random;
import com.espertech.esper.client.Configuration;
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;
public class exampleMain {
private static Random generator = new Random();
public static void GenerateRandomTick(EPRuntime cepRT){
double price = (double)generator.nextInt(10);
double pp = (double)generator.nextInt(10);
long timeStamp = System.currentTimeMillis();
String symbol = “APPL”;
Tick tick = new Tick(symbol, price, timeStamp,pp);
System.out.println(“Sending tick:” + tick);
cepRT.sendEvent(tick);
}
public static void main(String[] args){
Configuration configuration = new Configuration();
// cepConfig.addEventType(“StockTick”, Tick.class); //事件配置 (指定事件类型)
// EPServiceProvider cep = EPServiceProviderManager.getDefaultProvider(cepConfig);
configuration.addEventTypeAutoName(“com.richway”); //事件配置 (指定包名)
EPServiceProvider cep = EPServiceProviderManager.getProvider(“com.richway”,configuration);
EPRuntime cepRT = cep.getEPRuntime();//获取Esper运行时
EPAdministrator cepAdm = cep.getEPAdministrator();//注册引擎
EPStatement cepStatement = cepAdm.createEPL(“select price,price2 from Tick where price>=4 or price2<=6 “);
cepStatement.addListener(new CEPListener());//添加监听器
for ( int i = 0; i < 10; i++){
GenerateRandomTick(cepRT);
}
}
}
package com.richway;
import com.espertech.esper.client.EventBean;
import com.espertech.esper.client.UpdateListener;
public class CEPListener implements UpdateListener{
@Override
public void update(EventBean[] newData, EventBean[] oldData){
for (EventBean eb : newData){
System.out.println(“Event received:”);
}
}
}
package com.richway;
import java.util.Date;
public class Tick {
String symbol;
Double price;
Date timeStamp;
Double price2;
public Tick(String s, double p, long t,double pp){
symbol = s;
price = p;
timeStamp = new Date(t);
price2 = pp;
}
public String getSymbol() {
return symbol;
}
public void setSymbol(String symbol) {
this.symbol = symbol;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public Date getTimeStamp() {
return timeStamp;
}
public void setTimeStamp(Date timeStamp) {
this.timeStamp = timeStamp;
}
public Double getPrice2() {
return price2;
}
public void setPrice2(Double price2) {
this.price2 = price2;
}
@Override
public String toString(){
return "Price:" + price.toString() + " time:" + timeStamp.toString()+"PP:"+price2.toString();
}
}