2011-02-07 2 views
0

Java 프로젝트에 Drools를 구현했습니다. 모든 규칙은 발사되지만 조건은 해고 직후 한 번만 확인됩니다.JBoss Drools가 한 번 조건을 확인합니다.

Drools의 행동 방식입니까? 모든 변경 사항에 대해 부울을 지속적으로 확인해야합니다.

답변

2

이것이 전방 체인 규칙 엔진이 작동하는 방식입니다 (매우 효율적입니다).

사실이 변경되면 (결과적으로 부울 속성/메소드의 결과가 변경된 경우) 룰 엔진에 workingMemory.updated(fact, factHandle)을 통지해야합니다. 그런 다음 룰 엔진은 해당 변경 사항을 기반으로 해고해야하는 모든 룰 (그리고 더 많은 단일 룰이 아닌)을 실행합니다.

Here's a diagram to explain why this can make your app a lot more scalable because it has to run a lot less code.

+0

예, 나는 @Geoffrey 드 스멧에 동의합니다. 최신 사실로 세션을 업데이트해야합니다. 또는 "no-loop"속성을 사용할 수 있습니다. 규칙의 결과가 사실을 수정하면 규칙이 다시 활성화되어 재귀가 발생합니다. – nIKUNJ