NDB 컨텍스트 클래스

애플리케이션은 컨텍스트를 사용하여 캐싱 정책을 제어할 수 있습니다. Context는 또한 NDB의 비동기 기능에 통합된 Memcache 및 URL Fetch를 위한 편리한 비동기 API를 제공합니다. 특히 Memcache API에서는 자동 일괄 처리가 지원됩니다.

캐시 관리 인스턴스 메서드

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에서 검색된 값 또는 NoneFuture를 반환합니다.

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을 반환합니다.