gpt4 book ai didi

java - 尝试使用 Esper Lambda 表达式

转载 作者:行者123 更新时间:2023-12-02 13:24:45 27 4
gpt4 key购买 nike

我正在尝试扩展 Esper 文档中的 where 枚举方法的示例,但遇到了问题。这是有问题的示例:

select items.where(i => i.location.x = 0 and i.location.y = 0) as zeroloc
from LocationReport

我想做的事情看起来很简单。而不是选择与此表达式匹配的items:

  • 我想要选择至少包含一个与表达式匹配的itemLocationReport

  • 在 time_batch 窗口中执行此操作(强调文本也可以使用非批处理时间窗口)。

因此,每隔n秒,我就会收到一组LocationReport,其中每个报告在其项目列表中至少包含一个零位置。

以下是 Esper 示例中使用的 Java 对象的结构,供引用:

public class LocationReport { List items; ...

public class Item { String assetId; // passenger or luggage asset id Location location; // (x,y) location boolean luggage; // true if this item is a luggage piece String assetIdPassenger; // if the item is luggage, contains passenger associated ...

public class Location { int x; int y; ...

背景详细信息:假设 LocationReport 是我感兴趣的实际对象...
使用 EPL,如上面的示例所示,其中 逻辑有效,但问题是,在仅返回 items 成员时,我看不到它来自的 LocationReport 类,该类除了包含其他属性之外,还包含其他属性我的 UpdateListener 需要的 items

此外,可能不相关,但就我而言,我收到的消息率很高,其中许多 LocationReport 是重复的(或足够接近以被视为重复),并且我的 where 子句将需要做出该确定并且仅转发"new"消息。

谢谢!

最佳答案

您可以将“*”添加到选择中,这样您就可以在旁边看到事件对象。 从 LocationReport 中选择 *, items.where(...)您可以在输出中添加“每 N 秒输出一次”。添加“#time(...)”作为时间窗口。

关于java - 尝试使用 Esper Lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43434410/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com