2017-04-10 5 views
0

저는 Esper를 처음 사용하기 때문에 경보 시스템을 구현하려고합니다. 항목 값이 임계 값을 초과하면 Event를 throw해야합니다. 예를 들어 자동차의 경우 특성 탱크가 값 40을 초과하면 이벤트를 얻고이 값이 40 미만이면 다른 이벤트를 얻고 자합니다.Esper : 값이 임계 값을 초과하면 이벤트가 발생합니다.

저는 Esper의 많은 기능을 시도했지만 아무런 효과가 없었습니다.

나는 그런 일을하고 싶어하지만 잘 작동하지 않습니다

insert into AlertEvt select b from pattern[t=Car while (t.tank > 90) -> b=AlertEvt(type=t.tank, machineName=t.module)] 

희망 누군가가 나에게 도움이 될 수 있습니다.

답변

0

이 하나의 경고를 값이 40 초과 :

select * from Event(value > 40) 

값이 한 번 40을 초과 한 후 아래 40 떨어지면 이것은 경고 :

select * from pattern[Event(value > 40) -> Event(value < 40)] 

것은 당신이 얼마나 자주 언급하지 않았기 때문에 당신 경고하고 싶을 때 (한 번, 매번?), 경고하지 않을 때 (40 번 이상하지 않는 동안?), 반복이나 억제를 추가하지 않았습니다. 솔루션 패턴 페이지는 매우 유용합니다. 내가 말하지 않은 요구 사항을 해결하는 데 도움이되는 몇 가지 링크가 있습니다.

http://espertech.com/esper/solution_patterns.php#semantic-window-1

http://espertech.com/esper/solution_patterns.php#semantic-window-2

+0

http://espertech.com/esper/solution_patterns.php#semantic-window-0 덕분에, 그것은 유용합니다. 귀하의 요청은 "최종 경고"를 던집니다. 경고가 시작되면 하나의 이벤트를 던지고 끝나면 하나의 이벤트를 던지려고합니다. 그러나 값이 상한 임계 값이지만 많은 경고를 내 보내지 않습니다. 어쩌면 에스페셜 컨텍스트에서. – Arthur

+0

첫 번째 이벤트를 얻으려면 "context xyz select * from Event # firstevent"를 시도하십시오. 그렇지 않으면 상황이 나아갈 길입니다. – user650839