2016-08-15 3 views
0

특정 엔티티 제품에 대한 캐시 구성을 테스트했습니다. 관련 링크는 here과 관련되어 있습니다.Moqui의 특정 엔티티에 대한 캐시 구성

나는

<cache name="entity.record.one.mantle.product.Product" expire-time-idle="60" expire-time-live="600"/> 

enter image description here

문제가 아니라 캐시 아이템 구성이 :

  • 만료-라이브 시간이 CacheList 페이지에 표시되지 않는 업데이트되지 것 같다 도구 앱의

  • 유휴 기간이 60 초로 설정되었지만 제품 이름이 60 초 (실제로 테스트 < 10 초)로 업데이트되면 캐시에서 가져온 제품은 업데이트 된 제품 이름을 반환합니다.

두 번째 동작이 필요한지 확실하지 않습니다. 아마도 제품 업데이트가 프레임 워크별로 캐시를 지 웁니다. 그렇다면 그것은 훌륭한 특징입니다. 그렇지 않다면 문제가 발생합니다. 결과가 캐시에서 발생하지 않는다는 의미입니다.

+0

테스트를 실행하면 두 번째로 바람직한 동작이되는 것 같습니다. 업데이트가 완료되면 캐시가 제거되고 다음 번에 액세스가 누락되어 새 업데이트 값을 얻습니다. –

답변

1

온 포인트 1 : 만료 시간은 유휴 또는 라이브 중 하나만 허용되며, 둘 다 지정하면 유휴 만료 시간이 사용됩니다. 기본적으로 기본 캐시에는 유형 (유휴, 실시간) 및 시간 (초)이있는 하나의 만료 정책이있을 수 있습니다.

포인트 2 : 예, 예상되는 동작입니다. 자동 캐시 지우기는 캐시 된 경우 레코드가 업데이트되고 캐시 된 뷰 엔티티 및 값 목록까지도 항상 작동해야합니다. 이를 처리하기위한 정교한 코드와 다양한 시나리오에서 작동하는지 확인하기위한 다양한 자동화 된 테스트가 있습니다.

여러 응용 프로그램 서버를 배포 할 때 모든 서버에서 자동 캐시 지우기를 처리 할 때 어떤 레코드 (엔터티 값)가 변경 되더라도 배포 된 항목을 사용하는 moqui-hazelcast 구성 요소를 사용하는 것이 좋습니다 각 서버가 캐시 한 내용을 기반으로 자동 캐시 지우기에 각 서버가 사용할 수있는 업데이트 된 레코드에 대한 메시지를 보냅니다.