drools의 stateless session과 stateful session의 차이점은 무엇입니까? 다른 문서를 살펴본 결과 아래에 있습니다
상태 비 저장 세션 규칙을 실행하는 동안 팩트에 대한 변경 사항은 규칙 엔진에 인식되지 않으므로 규칙을 수정하면 규칙을 다시 활성화 할 수 없습니다.
스테이트 풀 세션 팩트 엔진에서 팩트의 변경 사항을 사용할 수 있으므로 특정 팩트에 대해 규칙을 수정하면이 변경 사항으로 모든 규칙이 다시 활성화되고 수정 된 팩트에 빌드 된 규칙이 실행됩니다.예를 들어 위의 차이점을 설명해 줄 사람이 있습니까?
아래 규칙을 실행하려고했는데 같은 결과를 찾았습니다
rule "first rules"
when
m : Message( status == Message.HELLO , myMessage : message )
then
System.out.println("first Rule");
System.out.println( myMessage );
end
rule "second rules"
when
m : Message( status == Message.GOODBYE , myMessage : message )
then
System.out.println("second Rule");
System.out.println( myMessage );
end
rule "third rules"
when
m : Message( status == Message.GOODBYE , myMessage : message )
then
System.out.println( "third Rule" );
System.out.println( myMessage );
m.setMessage( "Hello " );
m.setStatus( Message.HELLO );
update(m);
end
-
답변 # 1
관련 자료
- python - var = fun ()과 var = fun의 차이점
- parsing - JSON 라인과 문서 유형의 차이점
- c - MQTTAsync_onSuccess와 MQTTAsync_deliveryComplete 콜백의 차이점은 무엇입니까?
- Go와 C ++의 포인터 차이, gc 후에 포인터가 변경됩니까?
- javascript - webpack bunde 크기에서 모듈 가져 오기의 차이점
- javascript - 함수를 참조하는 것과 호출하는 것의 차이점 (thismyFunc vs thismyFunc ())
- 단방향 인증과 상호 인증의 차이점은 무엇입니까? 그리고 몇 가지 예를 들어
- deep learning - Keras에서 상자 좌표와 앵커 상자의 차이점
- python - 검색과 조건으로 두 열 값의 차이점 찾기
- c# - 생성자와 기본 메소드의 차이점은 무엇입니까?
- c - O1과 Os의 차이점은 무엇입니까?
- 'SAS'와 'Salesforce'의 차이점은 무엇입니까
- asp.net - "면도기"와"cshtml"파일의 차이점은 무엇입니까
- mercurial - hg revert --all과 hg up -c의 차이점은 무엇입니까?
- kotlin - 멤버 함수와 속성의 차이점
- c++ - 동적 배열 (GCC)과 포인터의 차이점
- types - Java에서 LongvalueOf (0)과 0L의 차이점은 무엇입니까?
- c# - 날짜 시간과 nullable 날짜 시간의 날짜 차이를 얻으려면
- Powershell을 사용하는 두 csv 파일의 차이점
상태 비 저장 및 상태 저장 키오 세션의 차이점을 이해하기 위해 drools 설명서를 참조 할 수 있습니다. 예를 들어 설명합니다.
Stateless KieSession-: Stateless KIE 세션은 추론이없는 세션입니다. 상태 비 저장 세션은 데이터를 전달한 다음 결과를 다시받는 데 사용할 수있는 함수처럼 호출 될 수 있습니다.Java 코드에서 fireAllRules ()를 지원하지 않습니다. Stateless KieSession의 execute 메소드는 내부적으로 KieSession을 인스턴스화하고 모든 사용자 데이터를 추가하고 사용자 명령을 실행하고 fireAllRules ()를 호출 한 다음 dispose ()를 호출합니다. 따라서 호출을 실행할 때마다 KieSession이 다시 인스턴스화되고 사용자 데이터가 다시 삽입되며 규칙이 실행되고 처리 메소드가 다시 호출됩니다.
예 :-:
Stateful KieSession-: Stateful 세션을 사용하면 시간이 지남에 따라 사실을 반복적으로 변경할 수 있습니다. KieSession에 삽입 된 사실은 kieSession이 유효 할 때까지 사용할 수 있습니다.예 :-:
여기서 2 번 fireAllrules ()를 호출하더라도 object1, object2, object3을 세션에서 사용할 수 있습니다. 문서의 "stateful_kie_session"부분에 언급 된 예를 사용해보십시오. 차이점을 이해하게 될 것입니다.