2014-06-13 7 views
0

각 15 초마다 실행되는 일련의 규칙이 있습니다.Drools : 기간 지정에 변수를 사용하는 방법은 무엇입니까?

이러한 규칙을 단위 테스트하려면이 기간 값을 동적으로 설정하고 싶습니다. 더보기, 저는 이것을 앱의 구성에 넣고 싶습니다. 이 값은 20 개 이상의 규칙에서 사용될 수 있습니다 ...).

어떻게하면됩니까? 가능한가?

 
gobal String timeDuration; 

rule "my rule Name" 
duration timeDuration 
when 
    //match something 
then 
    //do something 
end 
내가 시도

:

 
rule "my rule Name" 
duration 15000 
when 
    //match something 
then 
    //do something 
end 

내가 뭔가하고 싶은 : 여기

내 규칙입니다 - 내 단위 테스트 에서 설정할 긴 전역 변수를 넣어 - 을 퍼팅 "15s"가 포함 된 내 단위 테스트에서 문자열 전역 변수 설정 - 정적 필드가 포함 된 클래스 가져 오기

 

import my.temp.package.RemoveThisUglyClass; 
rule "my rule Name" 
duration RemoveThisUglyClass.timeDuration 
when 
    //match something 
then 
    //do something 
end 

할 방법이없는 것으로 보입니다. 내가 맞습니까? 제안 사항이 있으십니까?

고맙습니다.

답변

2

duration 규칙 속성은 오랫동안 사용되지 않습니다. 지속 시간 (밀리 초) 후

rule "tock" 
timer(expr: $d) 
when 
    A($d: duration) 
then 
    //... 
end 

이 불을, 그러나 당신은 또한 "3S"같은 배를 포함하는 문자열 필드를 사용할 수 있습니다 : 당신은 timer를 사용할 수 있습니다. 설명서를 참조하십시오.

+0

귀하의 답변은 나를 도왔습니다 내 기간 값을 포함하는 전역 변수를 사용하여 타이머에서 직접 사용했습니다. – user3738021