EPL Esper查询使用存储在事件属性中的历史时间而不是发布时间

时间:2015-03-06 20:35:28

标签: esper epl nesper

让我们说我有一个简单的对象:

public class StockTick{
    private String symbol;
    private decimal price;
    private Date date;
    private int unixTimestamp
}

如何修改以下查询以使用StockTick.date或StockTick.unixTimestamp在.win:time()窗口内进行聚合?

select avg(price) from StockTick.win:time(30 sec) where symbol='IBM'

1 个答案:

答案 0 :(得分:1)

如果事件已由unix时间戳排序,则无需修改查询。只为每个事件执行此操作:

runtime.sendEvent(new CurrentTimeEvent(unixTimestamp));
runtime.sendEvent(stockTickEvent);

以上代码使用外部时间,因此请禁用默认的内部系统时间。对于完全无序或未暂停的事件,请不要使用时间窗口,而是考虑分组的外观。