【问题标题】:Selecting last event in group选择组中的最后一个事件
【发布时间】:2013-08-07 23:41:50
【问题描述】:

我们有一个连接到其他几个系统并将事件推送到流中的应用程序。每个连接器还将在其状态更改时发送一条状态消息。我想要一个 esper 查询,它向我显示为每个连接器发送的最后状态,即使该状态是不久前发送的。我们的 bean 看起来像这样

public class ConnectorStatus
{
    private final String name;
    private final boolean available;
    private final boolean connected;

    public ConnectorStatus(String name, boolean available, boolean connected)
    {
        this.name = name;
        this.available = available;
        this.connected = connected;
    }

    public String getName() { return name; }
    public boolean getAvailable() { return available; }
    public boolean getConnected() { return connected; }
}

我尝试了以下 esper 查询,但它似乎只返回每个名称的第一条状态消息。

select name, available, connected
from ConnectorStatus.std:groupwin(name).std:lastevent()
output every 10 sec

我是 esper 的新手。我对正常的时间窗口查询还不错,但是长时间保留最后一个事件让我很困惑。 只有几十个连接器,它们的状态可能几个小时都不会改变,但我们仍然希望看到最后发送的状态。

【问题讨论】:

    标签: java esper


    【解决方案1】:

    “std:unique”数据窗口保存每个唯一条件的最后一个事件。 “输出快照”告诉引擎输出数据窗口内容。

    选择名称、可用、已连接 从 ConnectorStatus.std:unique(name) 每 10 秒输出一次快照

    【讨论】:

      猜你喜欢
      • 2012-12-07
      • 2012-10-01
      • 2019-03-13
      • 2012-09-09
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 2020-08-30
      • 1970-01-01
      相关资源
      最近更新 更多