Esper: Select一个List中所有对象的指定属性

Esper: Select a specified attribute of all objects in a List

我是 Esper 的新手,所以如果以下问题听起来很愚蠢,请不要开枪。

我正在向 esper 实例发送 POJO 事件。这个POJOS有一些属性,如下:

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

List<WorkingDay> 包含一个工作日列表,指示允许主机在哪个时间做某些事情。 WorkingDay 中的每一个都有一个独特的 dayName(参见下面的 class 描述)。 一旦 sourceIP 的主机 activity 被发现,事件 MyEventPOJO 就会被发送到 esper。该事件是在软件的另一部分创建的。在该部分中,查询数据库以获取主机的 WorkingDays。此信息被放入 List<WorkingDay>,然后与 transmissionTime 相关联。传输时间表示主机activity被跟踪到的时间(activity的日期和时间。

关联的结果应该是主机在 List<WorkingDay>

指定的允许时间之外处于活动状态的所有 MyEventPOJO

一个工作日是这样的:

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

我想创建一个过滤掉事件的语句,其中满足以下条件:

编辑:该语句应使用 10 分钟长度的 time_batch window 收集所有与上述表达式匹配的 MyEventPOJO

感谢您给我的任何建议。提前致谢。

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

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

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))
)