2014-11-25 6 views
0

NEsper를 사용하여 고유 ID가있는 차량의 시간을 측정하고 싶습니다. 내 문제는 도로에 여러 차가 있다는 것입니다. 이 도로에는 사전 정의 된 단계가 있습니다. 나는이 차가 마지막 단계를받을 때까지 첫 걸음에있는 모든 독특한 자동차의 시간을 멈추기를 원합니다.Nesper와의 고유 한 물체의 시간 측정

select ice.* from pattern[ice = IncomingCarEvent -> every timer:interval(1 sec) and not LastStepEvent] 

문제는 내가 주어진 이드로 자동차를 분리하는 방법을 모른다는 것입니다. 이 예에서 자동차 중 하나가 마지막 단계를 수신하면 이벤트가 더 이상 실행되지 않습니다.

답변

0

마지막 단계까지 측정 한 이유와 패턴에 "최후 단계가 아니라"라는 이유가 명확하지 않습니다. "a = A => B (id = a.id)"와 같은 패턴의 이벤트를 서로 연관시켜 파티셔닝 할 수 있습니다. 또한이 링크에있는 문맥 선언을 사용하여 파티션 할 수도 있습니다. http://esper.codehaus.org/esper-5.1.0/doc/reference/en-US/html_single/index.html#context_def_keyed 또는 일치 검색은 정규 표현식과 매우 유사하게 일치를 표현할 수있는 계단식 접근 방식을 사용하기 때문에 더욱 쉽게 사용할 수 있습니다.

+0

내 아이디어는 자동차가 마지막 단계에 도달하지 않을 때까지 이벤트를 시작하는 것이 었습니다. 컨텍스트를 언급 해 주셔서 감사합니다. – HassanJackson

+0

예를 찾지 못했지만 특정 차가 마지막 단계에 도달 할 때까지의 시간을 측정 한 다음 측정 된 시간으로 이벤트를 시작하는 것이 가능할 수 있습니다. 이것은 나를위한 옵션이 될 것입니다. – HassanJackson