2013-09-05 5 views
3

안녕하십니까.시를 사용하는 CEP 부재시

필자는 SW Competence Center를 Company Indra (www.indra.com)로 작성했습니다.

이 영역에서 우리는 항상 Esper CEP를 사용할 때까지 오픈 소스 도메인에서 CEP, 오픈 소스 및 상업용으로 작업하지만 GPL에는 문제가 있습니다.

우리가 Siddhi CEP를 시험해보고 싶었 기 때문에 우리는이 CEP로 프로젝트를 시작했습니다.

문제는 모든 CEP를 포함하고 프로젝트가 필요한 기능을 식별 할 수 없다는 것입니다. 즉, 이벤트가 없음을 감지했습니다.

은 에스퍼에서 이것은 같은 쿼리를 수행 할 수 있습니다 : 우리는 제품 로드맵이 기능을 통합 할 수 있는지 여부를 알고 싶어

 select a.id, count (*) from pattern [ 
    every a = Status -> (timer: interval (10 sec) and not Status (id = a.id) 
    ] Group by id 

    http://esper.codehaus.org/tutorials/tutorial/tutorial.html 

, 지금은이 문제에 대한 해결 방법이있는 경우.

감사 및 인사말.

답변

0

이 규칙은 최신 이벤트가 도착하지 않을 때마다 10 초마다 실행됩니다. Drools가 CEP 엔진이 모드를

declare EquipmentFact 
@role(event) 
@timestamp(lastNotifyTs) 
originalObject : Object  
equipmentInit : String 
equipmentNum : String 
    lastNotifyTs : java.util.Date 
    eventTs : java.util.Date 
    notifyCnt : int 
    maxWait : String 
end 

규칙을 스트림에 설정해야합니다 말

System.out.println("####### FIRED ######### Second EquipmentFact event did not arrive 10s " + $a); 
retract($a); 
    EquipmentFact retE = new EquipmentFact(); 
retE.setEquipmentInit($a.getEquipmentInit()); 
retE.setEquipmentNum($a.getEquipmentNum()); 
retE.setEventTs($a.getEventTs()); 
retE.setNotifyCnt($a.getNotifyCnt()+1); 
retE.setLastNotifyTs(new Date()); 
insert(retE); 

다음

$a: EquipmentFact(); 
not EquipmentFact(eventTs > $a.eventTs, equipmentInit == $a.equipmentInit, equipmentNum == $a.equipmentNum, this after [1s, 10s] $a) 

"장비 10 초 시간 내에 전송되지 않았습니다"