2013-08-05 3 views
0

우리는 여러 다른 시스템에 연결하여 이벤트를 스트림으로 푸시합니다. 또한 각 커넥터는 상태가 변경 될 때 상태 메시지를 보냅니다. 나는 이전에 상태가 전송 된 경우에도 각 커넥터에 대해 보내진 마지막 상태를 보여주는 훌륭한 쿼리를 원합니다. 우리 콩은 다음과 같이 보입니다.그룹의 마지막 이벤트 선택

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에게 신입입니다. 나는 정상적인 시간 창 쿼리에 나쁘지는 않지만, 오랜 시간 동안 마지막 이벤트를 유지하는 것은 저를 곤란하게합니다. 몇 개의 커넥터 만 있고 몇 시간 동안 상태가 바뀌지는 않지만 마지막으로 보낸 상태를보고 싶습니다.

답변

1

"표준 : 고유"데이터 창은 고유 기준에 따라 마지막 이벤트를 보유합니다. "출력 스냅 샷"은 엔진에 데이터 창 내용을 출력하도록 지시합니다.

선택 이름은 사용할 수 ConnectorStatus.std에서 연결 : 고유 한 (이름) 출력 스냅 샷 매 10 초

관련 문제