2014-11-25 51 views
0

我想用NEsper测量具有唯一标识的汽车的时间。我的问题是,道路上有几辆车。这条路有预定义的步骤。我想要开始停止每一辆独一无二的汽车的时间,直到这款汽车获得最后一步。使用Nesper对独特对象进行时间测量

select ice.* from pattern[ice = IncomingCarEvent -> every timer:interval(1 sec) and not LastStepEvent] 

问题是,我不知道如何将汽车与给定的ID分开。在这个例子中,如果其中一辆车接收到最后一步,则该事件不再触发。

回答

0

我不是很清楚你为什么要测量,直到最后一步,并且模式显示“不是拉斯特斯特”。 分区可以通过关联模式中的事件来完成,例如“a = A => B(id = a.id)”。 您也可以使用此链接中的上下文声明进行分区:http://esper.codehaus.org/esper-5.1.0/doc/reference/en-US/html_single/index.html#context_def_keyed 或者您可能会发现匹配识别更易于使用,因为它具有更多的逐步方法来表达比较类似正则表达式的匹配。

+0

我的想法是发动一个事件,直到汽车没有达到最后一步。感谢提及上下文,我会尝试它。 – HassanJackson 2014-11-26 12:19:53

+0

我没有找到这方面的例子,但也许可以测量某个特定汽车到达最后一步之前的时间,然后用测量的时间点燃事件。这对我来说也是一种选择。 – HassanJackson 2014-11-26 13:58:52