RCR - 캐싱 메커니즘
Understand caching for Remote Config Runtime.
읽는 시간 1분최근 업데이트: 한 달 전
Remote Config 런타임에서는 다음과 같이 작동하는 캐싱 메커니즘을 사용합니다.
- RCR이 디스크에 있는 캐시 파일에서 최근 저장된 구성을 성공적으로 읽으면 해당 구성이 적용됩니다.
- 앱이 처음으로 연결되고 캐시 파일이 없으면 RCR은 각 변수 유형(int의 경우 0, 문자열의 경우 "" 등)에 기본값을 적용합니다.
- PCR에서 성공적으로 요청을 생성하면 이전에 적용된 캐싱된 구성을 오버라이드합니다.
- 최근 수신된 구성은 캐시 파일의 값도 오버라이드합니다.
- 이 메커니즘은 모든 플랫폼에 적용되며, 콘솔용 디스크에 기록하려면 특별한 플랫폼 권한이 필요하므로 콘솔은 제외됩니다.
캐시 파일 위치
캐시 파일은Application.persistentDataPath/{YourApp}/RemoteConfigCache.json{ "settings": { "requestOrigin": 2, "status": 2, "body": { "configs": { "settings": { "rotateY": 30.0, "rotSpeed": 44.0, "swordName": "Singing Sword", "rotateZ": 4.0, "jsonCubeCustom": { "rotateX": 20, "color": { "r": 0.2, "g": 0.2, "b": 0.3, "a": 1 } }, "swordPrice": 5, "testdateString": "2021-10-21T10:00:00.0000001-07:00", "rotateX": 777.0 } }, "metadata": { "assignmentId": "355faf1d-9ce0-4528-9267-95ffe07ed891", "environmentId": "11daa94d-0ffa-41e2-8579-f4acbbdb3987", "bundle": "657abf6ee46c9dc227581a7adba48bca89dfb620" } }, "headers": { "Date": "Mon, 15 Nov 2021 17:44:08 GMT", "Content-Type": "application/json;charset=utf-8", "Access-Control-Allow-Origin": "\*", "Content-Length": "429", "Server": "Jetty(9.4.z-SNAPSHOT)", "Via": "1.1 google", "Alt-Svc": "clear", "Connection": "keep-alive" } }}
캐싱 시나리오
캐싱 메커니즘 내에서requestOriginstatusconfigResponserequestOrigin에 가능한 값:void ApplyRemoteSettings (ConfigResponse configResponse) { // Conditionally update settings, depending on the response's origin: switch (configResponse.requestOrigin) { case ConfigOrigin.Default: Debug.Log ("No settings loaded this session; using default values."); break; case ConfigOrigin.Cached: Debug.Log ("No settings loaded this session; using cached values from a previous session."); break; case ConfigOrigin.Remote: Debug.Log ("New settings loaded this session; update values accordingly."); break; }}
{0:Default, 1:Cached, 2:Remote}{0:None, 1:Failed, 2:Success, 3:Pending}- 사용자가 이전에 연결한 적이 없고 지금도 연결되어 있지 않으면 기본값이 적용됩니다.
- 사용자가 이전에 연결한 적이 없지만 지금 연결되어 있으면 원격 값을 적용하고 로컬 디스크의 캐시에 기록합니다.
- 사용자가 최소 한 번 이상 연결되었지만 지금은 연결되어 있지 않으면 캐싱된 값이 적용됩니다.
- 사용자가 최소 한 번 이상 연결되었고 지금도 연결되어 있으면 캐싱된 값을 덮어쓰므로 원격 값이 적용됩니다.
시나리오 | 과거 연결 여부 | 현재 연결 여부 | CacheFile | 출처 | 상태 |
|---|---|---|---|---|---|
| 1 | 아니요 | 아니요 | 없음 | Default | Failed |
| 2 | 아니요 | 예 | 예 | Remote | Success |
| 3 | 예 | 아니요 | 예 | Cached | Failed |
| 4 | 예 | 예 | 예 | Remote | Success |