우리는 여러 다른 시스템에 연결하여 이벤트를 스트림으로 푸시합니다. 또한 각 커넥터는 상태가 변경 될 때 상태 메시지를 보냅니다. 나는 이전에 상태가 전송 된 경우에도 각 커넥터에 대해 보내진 마지막 상태를 보여주는 훌륭한 쿼리를 원합니다. 우리 콩은 다음과 같이 보입니다.그룹의 마지막 이벤트 선택
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에게 신입입니다. 나는 정상적인 시간 창 쿼리에 나쁘지는 않지만, 오랜 시간 동안 마지막 이벤트를 유지하는 것은 저를 곤란하게합니다. 몇 개의 커넥터 만 있고 몇 시간 동안 상태가 바뀌지는 않지만 마지막으로 보낸 상태를보고 싶습니다.