我有Esper在本地运行,我正在(通过XML)提供一些EPL语句 -
<?xml version="1.0" encoding="UTF-8"?>
<Statements>
<Statement>
create window OrderEventWindow.win:keepall() as select * from OrderEvent
</Statement>
<Statement>
@Name("OrderEventsFromWindow")
@Description("Outputs any Order events from the window")
select * from OrderEventWindow
</Statement>
<Statement>
@Name("OrderEventsFromDirect")
@Description("Outputs any Order events from the feed")
select * from OrderEvent
</Statement>
</Statements>
这似乎没有任何错误。但是,现在的问题是看起来似乎上面的语句“OrderEventsFromWindow”没有运行,因为我看不到输出结果(尽管有类型为OrderEvent的事件进入)。
奇怪的是,另一个声明“OrderEventsFromDirect”正在按预期工作。
知道我可能做错了什么可以解释为什么我的第一个陈述没有显示任何输出?
*请注意我的XML中的所有语句都是在应用程序启动时输入的,如下所示:
for (String stmt : statements) {
EPStatement statement = admin.createEPL(stmt);
statement.addListener(this);
}
答案 0 :(得分:1)
命名窗口为空,&#34;创建窗口OrderEventWindow.win:keepall()为OrderEvent&#34;只定义命名窗口中行的类型,在您的情况下,它们与OrderEvent是相同的行类型。 您希望使用&#34;将所有订单事件插入到命名窗口中;插入OrderEventWindow select * from OrderEvent&#34;如果那是你要插入的内容。