2012-10-13 6 views
1

FILTRE 주어진 :Drools가 융합 시간은 창을 슬라이딩을 기반으로 속성은 다음과 같은 공식 문서 조각 나는 Drools가 5.4.0.Final에서 슬라이딩 시간 창을 사용하려고

StockTick() over window:time(2m) 

StockTick(company == "RHT") over window:length(10) 

을 혼합 된 형식이 유효하다고 생각했습니다.

StockTick(company == "RHT") over window:time(2m) 

하지만 제가 틀리지 않으면, 그것은 작동하지 않습니다. 예상되는 (즉, 지난 2 분 내에 발생한 RHT 스톡 틱만 고려하십시오). 그리고 저는 결과의 논리를 이해하지 못했습니다.

누가 나에게 속임수를 설명해 줄 수 있습니까?

감사합니다.

답변

0

두 개의 Drools 버전은 서로 다른 두 가지 동작 (동일한 단위 테스트)을 발생시킵니다. 그래서 내 오해는 "windows"동작의 버그에서 비롯된 것이라고 생각합니다. 나는 이번에 더 구체적 일 수 없다.

1

drools-fusion-docs2.6.1. Sliding Time Windows을 보면 집계 예가 있습니다. 귀하의 필요에 맞는 변형이 있습니다.

rule "At least one RHT in the last 2 minutes" 
when 
    Number(intValue > 0) from accumulate(
     $tick = StockTick(company == "RHT") over window:time(2m), 
     count($tick)) 
then 
    // do something here 
end 
+0

네, 감사합니다. 나는 나의 2 Drools 질문을 실제로 닫는 것을 잊는다. Drools Fusion에 이상한 행동이 있습니다. 나는 그것이 도청 된 버전이라고 확신하지만 나는 더 구체적 일 수 없기 때문에 말할 수 없다. (질문 시간은 나에게 급한 시간이었다. - 나쁘다). 유일하게 확실한 점은 Drools의 버전이 다르면 다른 TU 동작이 있다는 것입니다. :( 어쨌든 시간 내 주셔서 감사합니다! – jineff