我刚刚在Java中实现了Esper CEP的简单示例。类似于example。
import requests
login_data = {
'j_username': '#',
'j_password':'#'
}
headers = {
'User-Agent':'Chrome/70.0.3538.110'
}
url ="https://alm.vodafone.com/qcbin/rest/domains/EVO/projects/EVO_Automation_New/defect"
login_url = "https://alm.vodafone.com/qcbin/rest/domains/EVO/projects/EVO_Automation_New/defect?login-form-required=y"
r = C.get(login_url)
tst = C.post(login_url,params=login_data,allow_redirects=True)
print("------",tst.status_code)
resp = C.get(url)
print("Second",resp.text)
print(resp.status_code)
但是,在此示例中,仅假定了简单的过滤器EPA。现在,我想在运行时中合并几个EPA,类似于以下示例。不幸的是,我找不到这种实现的任何示例: 有人有例子吗?。
提前谢谢
编辑:到目前为止,我做到了,就像user650839所说的那样:
Configuration config = new Configuration();
config.addEventType("SensorEvent",
test.SensorEvent.class.getName());
EPServiceProvider epService = EPServiceProviderManager
.getDefaultProvider(config);
String expression = "select * from SensorEvent where sensor11 >= 1.00";
EPStatement statement = epService.getEPAdministrator().createEPL(expression);
MyListener listener = new MyListener();
statement.addListener(listener);
代码被完美地编译,但是当传感器12小于1时,我的事件处理程序也会响应。因此,我猜测如果我的一条语句为true就足够了,但是我的事件处理程序仅在所有语句为true时才作出反应。 / p>
答案 0 :(得分:0)
@name('EPA1') insert into EPA3 select * from SensorEvent(sensor11>1);
@name('EPA2') insert into EPA3 select * from SensorEvent(sensor11<1);
@name('EPA3') select count(*) from EPA3
或者也许,取决于图形的确切含义
@name('EPA1') insert into EPA1 select * from SensorEvent(sensor11>1);
@name('EPA2') insert into EPA2 select * from SensorEvent(sensor11<1);
@name('EPA3') select * from EPA1#time(10) as epa1, EPA2#time(20) as epa2 where epa1.sensorId = epa2.sensorId
也许solution patterns会进一步激发您的灵感。