애플리케이션은 컨텍스트를 사용하여 캐싱 정책을 제어할 수 있습니다.
Context
는 또한 NDB의 비동기 기능에 통합된 Memcache 및 URL Fetch를 위한 편리한 비동기 API를 제공합니다. 특히 Memcache API에서는 자동 일괄 처리가 지원됩니다.
- 캐시 관리 인스턴스 메서드
- Memcache 및 Urlfetch 인스턴스 메서드
- 트랜잭션 관리 메서드
- 정적 메서드
캐시 관리 인스턴스 메서드
- clear_cache()
- 컨텍스트 내 캐시를 지웁니다.
- flush()
- 모든 자동 일괄 처리 작업자 큐를 비웁니다(해당 작업을 서버로 전송).
비우기는 비동기적으로 발생합니다.
Future
를 반환합니다. 비우기가 완료될 때까지 기다리려면 이 객체의wait()
메서드를 호출합니다. - get_cache_policy()
- 캐시 정책 함수를 반환합니다.
이 정책 함수는 Key 인스턴스 인수를 가져와서 이 키를 포함하는 항목을 컨텍스트 내 캐시에 캐시해야 하는지 여부를 나타내는
bool
을 반환합니다.None
(즉,default_cache_policy
사용)일 수 있습니다. - get_datastore_policy()
- 현재 컨텍스트 Datastore 정책 함수를 반환합니다.
이 정책 함수는 Key 인스턴스 인수를 가져와서 Datastore를 사용해야 하는지를 나타내는
bool
을 반환합니다.None
(즉,default_datastore_policy
사용)일 수 있습니다. - get_memcache_policy()
- 현재 memcache 정책 함수를 반환합니다.
이 정책 함수는 키 인스턴스 인수를 가져와서 캐시되어야 하는지를 나타내는
bool
을 반환합니다.None
(즉,default_memcache_policy
사용)일 수 있습니다. - get_memcache_timeout_policy()
- 현재 memcache 제한 시간 정책 함수를 반환합니다.
이 정책 함수는 Key 인스턴스 인수를 가져와서 원하는 memcache 제한 시간(초)을 반환합니다(기본 제한 시간을 사용하는 경우 0 반환).
None
를 사용하는default_memcache_timeout_policy
일 수 있습니다. - set_cache_policy(func)
- 캐시 정책 함수를 설정합니다.
인수
- func
- 이 함수는
Key 인스턴스 인수를 가져와서
이 키를 포함하는 항목을 컨텍스트 내 캐시에
캐시해야 하는지 여부를 나타내는
bool
을 반환합니다.None
일 수 있습니다.
- set_datastore_policy(func)
- Datastore 정책 함수를 설정합니다.
인수
- func
- 이 함수는 Key 인스턴스 인수를 가져와서 이 키를 포함하는 항목을 영구 Datastore에 저장해야 하는지 여부를 나타내는
bool
을 반환합니다.None
일 수 있습니다.
- set_memcache_policy(func)
- memcache 정책 함수를 설정합니다.
인수
- func
- 이 함수는
Key 인스턴스 인수를 가져와서
이 키를 포함하는 항목을 컨텍스트 내 캐시에
캐시해야 하는지 여부를 나타내는
bool
을 반환합니다.None
일 수 있습니다.
- set_memcache_timeout_policy(func)
- memcache 제한 시간 정책 함수를 설정합니다.
인수
- func
- 이 함수는
Key
인스턴스 인수를 가져와서 원하는 memcache 제한 시간(초)을 반환합니다(기본 제한 시간을 사용하는 경우 0 반환).None
일 수 있습니다.
Memcache 및 Urlfetch 인스턴스 메소드
전체 메소드 목록은 Memcache API 참조에서 찾을 수 있습니다. 아래 목록은 보다 자주 사용되는 일부 메소드를 보여줍니다.
- memcache_add(key, value, time, namespace)
- 비동기 자동 일괄 처리 memcache
add()
. - memcache_cas(key, value, time, namespace)
- 비동기 자동 일괄 처리 memcache
Client
cas()
(compare-and-swap). - memcache_decr(key, delta, initial_value, namespace)
- 비동기 자동 일괄 처리 memcache
decr()
. - memcache_delete(key, seconds, namespace)
- 비동기 자동 일괄 처리 memcache
delete()
. - memcache_get(key, namespace, use_cache)
- 비동기 자동 일괄 처리 memcache
get()
.반환 값이 memcache에서 검색된 값 또는
None
인Future
를 반환합니다. - memcache_gets(key, namespace, use_cache)
- 비동기 자동 일괄 처리 memcache
gets()
. - memcache_incr(key, delta, initial_value, namespace)
- 비동기 자동 일괄 처리 memcache
incr()
. - memcache_replace(key, value, time, namespace)
- 비동기 자동 일괄 처리 memcache
replace()
. - memcache_set(key, value, time, namespace, use_cache)
- 비동기 자동 일괄 처리 memcache
set()
. - urlfetch(url, payload, method, headers, allow_truncated, follow_redirects, validate_certificate, deadline, callback)
- 비동기 자동 일괄 처리 urlfetch
fetch().
트랜잭션 관리 메서드
- call_on_commit(callback)
- 트랜잭션 커밋이 성공했을 때 호출할 콜백을 대기열에 저장합니다.
트랜잭션에 없으면 콜백이 즉시 호출됩니다.
트랜잭션에는 여러 콜백이 등록될 수 있으며, 트랜잭션이 커밋되었을 때 콜백이 등록된 순서로 호출됩니다. 트랜잭션이 실패하면 콜백이 호출되지 않습니다.
콜백에 예외가 발생하면 일반적으로 표시됩니다. 즉, 콜백이 즉시 호출된 경우, 여기에 발생한 예외도 즉시 표시됩니다. 호출이 커밋까지 연기된 경우, 남은 콜백을 건너뛰고
transaction()
호출을 통해 예외가 표시됩니다. (하지만 트랜잭션은 해당 시점에 이미 커밋되어 있습니다.)인수
- 콜백
- 콜백 함수입니다. 이 콜백 함수는 매개변수를 사용하지 않고, 아무 것도 반환하지 않습니다.
- in_transaction()
- 이 컨텍스트가 트랜잭션을 나타낼 경우
True
를 반환하고, 그렇지 않으면False
를 반환합니다.
정적 메소드
- default_cache_policy(key)
- 항목의 모델 클래스에서
_use_cache
클래스 변수를 확인하고, 변수가 있으면 이를 반환합니다. 그렇지 않은 경우None
을 반환합니다. - default_datastore_policy(key)
- 항목의 모델 클래스에서
_use_datastore
클래스 변수를 확인하고, 변수가 있으면 이를 반환합니다. 그렇지 않은 경우None
을 반환합니다. - default_memcache_policy(key)
- 항목의 모델 클래스에서
_use_memcache
클래스 변수를 확인하고, 변수가 있으면 이를 반환합니다. 그렇지 않은 경우None
을 반환합니다. - default_memcache_timeout_policy(key)
- 항목의 모델 클래스에서
_memcache_timeout
클래스 변수를 확인하고, 변수가 있으면 이를 반환합니다. 그렇지 않은 경우None
을 반환합니다.