Drools Fusion 5.5에서 의사 시계를 사용하는 cron 타이머를 기반으로하는 규칙 실행을 테스트하려고합니다. 나는 규칙이 오전 1시에서 매일 발사 할 :Drools Fusion의 가짜 시계로 Cron 타이머 테스트?
rule "CALCULATING DATE FOR NEXT DAY"
timer (cron:00 00 01 * * ?)
no-loop
when
$summary: FxSummary(sameDayCcyFlag == false)
then
BusinessDayUtil b = new BusinessDayUtil();
modify($summary) {
setSettlementDate(b);
}
end
나는 다음을 수행 내 테스트 케이스에 다음은 :
PseudoClockScheduler timeService = (PseudoClockScheduler) ksession.getSessionClock();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date date = df.parse("2014-01-16T01:00:00.000-0000");
Summary sum = new Summary("YEN").setSameDayCcyFlag(false);
ksession.fireAllRules();
timeService.advanceTime(date.getTime(), TimeUnit.MILLISECONDS);
ksession.fireAllRules();
이 ... 타이머 그 어떤 표시를 아무것도하지하지 않는 것 해고되었거나 뭐든지. 또한 12시 59 분 50 초에 날짜를 삽입하고 시계를 10 초 앞당기 자 시도했습니다. 또한, fireUntilHalt 엔진을 실행하는 등 아무것도 작동하는 것 같습니다. 올바르게 사용하고 있습니까? 의사 시계는 타이머와 함께 작동합니까? 또한 발사 예정이었던 타이머를 지나서 시계를 진행하면 "놓친"타이머가 작동합니까?
이 정확히 내 문제라고 생각하지 마십시오 , 그러나 그것은 바른 길에서 나를 붙 잡았다! 나에게 초기 진보 (날짜)는 실제로 아무 것도하지 않는 것처럼 보인다 ... 나는 기본적으로 아무 것도 전달할 수없고 앞으로 나아지지 않는다. 그러나, 두 번째 진행() 후, 그것은 "말하자면"들어가서 제대로 작동합니다. 고맙습니다! – i850eggs
@ i850eggs 시계는 선불 통화로 인해 진행되지만 다른 사람이보아야합니다. - 내가 게시 한 코드 시퀀스는 테스트되고 주석에 설명 된대로 작동합니다. – laune