2017-03-17 22 views
-1

即时消息全新的Esper,所以如果下面的问题听起来很愚蠢,请不要开枪。Esper:选择一个列表中的所有对象的指定属性

我正在将POJO事件发送给esper实例。该POJO。有一些属性,具体如下:

MyEventPOJO { 
final String sourceIP; 
final String destIP; 
final Calendar transmissionTime; 
final List<WorkingDay> WorkingDays; 

List<WorkingDay>持有WorkingDays指示,此时主机被允许做某些事情的清单。 WorkingDay的每一个都有独特的dayName(见下面的课堂描述)。 一旦找到主机sourceIP的活动,会立即将事件MyEventPOJO发送给esper。该事件在软件的另一部分中创建。在该部分中,查询主机的WorkingDays的数据库。该信息被放入List<WorkingDay>,然后与transmissionTime关联。传输时间代表跟踪主机活动的时间(活动日期和时间)。

的相关性的结果应该是所有MyEventPOJO的,其中主机是由List<WorkingDay>

甲WorkingDay指定的允许时间的活性外看起来像这样:

public class WorkingDay { 
final String dayName; 
final Calendar startTimeOfDay; 
final Calendar endTimeOfDay; 
. 
. 
. 

我要创建一个过滤掉的事件,其中以下内容是真实的陈述:

  • MyEventPOJO.tramissionTime具有相同的d唉命名为WorkingDay.dayName
  • MyEventPOJO.tramissionTime的一天的时间是WorkingDay.startTimeOfDay的范围和外WorkingDay.endTimeOfDay

编辑:语句应该收集所有MyEventPOJO的,符合上述使用的time_batch窗口陈述的表达式10分钟的长度。

我很感激你可以给我的任何建议。提前致谢。

我祝你周末愉快,希望我能在你的帮助下解决这个问题。

+0

什么是输出?输出是MyEventPOJO吗?或者输出是WorkingDay?或者每行包含一行?此外,如果“MyEventPOJO.sourceIP等于WorkingDay.hostIP”会发生什么,如果这不是真的,没有获得输出或只是匹配的输出?这听起来像是你想在“Contained Event”下的文档中应用whats,请参阅http://espertech.com/esper/release-6.0.1/esper-reference/html_single/index.html#epl-containedeventselect – user3613754

+0

感谢问题,我编辑了我的首发帖子。纠正我,如果我错了,但我不认为这就是我正在寻找,因为'列表'不是一个事件本身。 – Kai

+0

我不能纠正你 - 他们是你的要求不是我的。如果输出只是MyEventPOJO而没有别的问题,那么问题是什么时候“MyEventPOJO.sourceIP等于WorkingDay.hostIP”对于所有WorkingDay对象,或者对于任何一个或完全一个对象都应该如此?您的要求不清楚。 “tramissionTime”相同。 – user3613754

回答

0

我使用脚本从日历中获取日期名称。

expression string getCalendarDayName(ts) [ 
    getCalendarDayName(ts); 
    function getCalendarDayName(ts) { 
    return new java.text.SimpleDateFormat("EEEE").format(ts.getTime()); 
    } 
] 
select * from MyEventPOJO(
    workingDays.allOf(v => dayName = getCalendarDayName(transmissionTime)) 
    and 
    workingDays.allOf(v => transmissionTime.before(startTimeOfDay) or transmissionTime.after(endTimeOfDay)) 
) 
相关问题