우리는 사용자가 규칙을 업데이트/편집 할 수있는 인터페이스와 함께 Drools를 사용합니다. 이러한 규칙은 데이터베이스에 저장 (및 버전 관리)됩니다. 그 후 규칙은 데이터베이스에서 다시 인출하고 다음과 같은 방식으로 하나 하나 추가됩니다Drools : 특정 규칙 만 업데이트하는 방법?
for (Rule rule ...) {
knowledgeBuilder.add(ResourceFactory.newByteArrayResource(rule.getRuleContent().getBytes()), ResourceType.DRL);
if (kbuilder.hasErrors()) { throw Error... }
}
kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(knowledgeBuilder.getKnowledgePackages());
우리는 수백 규칙과/초 (2 개 노드) 백 또한 여러 규칙의 처리량을 검사하는 규칙이있다. 규칙 수가 증가하면이 KnowledgeBase 업데이트가 오래 걸리고 (모든 규칙을 컴파일하는)이 시간 동안 규칙을 확인할 수 없습니다. 따라서 시스템은 여전히 사용자 관점에서 출발합니다.
규칙을 선택적으로 새로 고칠 가능성이없는 것 같습니다. 맞습니까? 그렇다면, 어떻게 그런 상황을 처리하는 가장 좋은 방법입니까? 가장 먼저 떠오르는 아이디어는 두 개의 기술 자료를 병렬로 사용하는 것입니다.