מחלקת הקשר של NDB

אפליקציה יכולה להשתמש בהקשר כדי לשלוט במדיניות השמירה שלה במטמון. ‫Context מציע גם ממשקי API נוחים ואסינכרוניים ל-Memcache ול-URL Fetch שמשולבים ביכולות האסינכרוניות של NDB. בפרט, Memcache API תומך באגירת נתונים אוטומטית.

שיטות של מופע לניהול מטמון

clear_cache()
מחיקת המטמון בהקשר.
flush()
מרוקנים את כל התורים של הכלי ליצירת חבילות אוטומטיות (שליחת העבודה שלהם לשרתים). הריקון מתבצע באופן אסינכרוני.

הפונקציה מחזירה Future. כדי להמתין עד שהניקוי יסתיים, צריך לקרוא לשיטת wait() של האובייקט הזה.

get_cache_policy()
מחזירה את פונקציית מדיניות המטמון. פונקציית המדיניות הזו מקבלת ארגומנט של מופע Key ומחזירה bool שמציין אם הישות עם המפתח הזה צריכה להיכלל במטמון בהקשר. יכול להיות None (כלומר, שימוש default_cache_policy).
get_datastore_policy()
מחזירה את פונקציית המדיניות של מאגר הנתונים של ההקשר הנוכחי. פונקציית המדיניות הזו מקבלת ארגומנט של מופע Key ומחזירה bool שמציין אם צריך להשתמש במאגר הנתונים. יכול להיות None (כלומר, שימוש ב- default_datastore_policy).
get_memcache_policy()
הפונקציה מחזירה את פונקציית המדיניות הנוכחית של memcache. פונקציית המדיניות הזו מקבלת ארגומנט של מופע Key ומחזירה bool שמציין אם צריך לשמור אותו במטמון. יכול להיות None (כלומר, שימוש ב- default_memcache_policy).
get_memcache_timeout_policy()
הפונקציה מחזירה את מדיניות הזמן הקצוב לתפוגה הנוכחית של memcache. פונקציית המדיניות הזו מקבלת ארגומנט של מופע Key ומחזירה את הזמן הרצוי להמתנה עד שתפוג התוקף של הנתונים במטמון memcache בשניות (או מחזירה אפס כדי להשתמש בזמן ברירת המחדל להמתנה עד שתפוג התוקף). יכול להיות None, שמשתמש ב- default_memcache_timeout_policy.
set_cache_policy(func)
הגדרת הפונקציה של מדיניות המטמון.

ארגומנטים

func
הפונקציה הזו מקבלת ארגומנט של מופע Key ומחזירה ערך bool שמציין אם הישות עם המפתח הזה צריכה להיכלל במטמון בהקשר. יכול להיות None.
set_datastore_policy(func)
מגדירה את פונקציית המדיניות של Datastore.

ארגומנטים

func
הפונקציה הזו מקבלת ארגומנט של מופע Key ומחזירה bool שמציין אם הישות עם המפתח הזה צריכה להישמר במאגר הנתונים הקבוע. יכול להיות None.
set_memcache_policy(func)
מגדיר את פונקציית המדיניות של memcache.

ארגומנטים

func
הפונקציה הזו מקבלת ארגומנט של מופע Key ומחזירה ערך bool שמציין אם הישות עם המפתח הזה צריכה להיכלל במטמון בהקשר. יכול להיות None.
set_memcache_timeout_policy(func)
מגדירה את פונקציית מדיניות הזמן הקצוב לתפוגה של memcache.

ארגומנטים

func
הפונקציה הזו מקבלת ארגומנט של מופע Key ומחזירה את הזמן הקצוב לתפוגה של memcache בשניות (או מחזירה אפס כדי להשתמש בזמן הקצוב לתפוגה שמוגדר כברירת מחדל). יכול להיות None.

שיטות של מופעים ב-Memcache וב-Urlfetch

רשימה מלאה של רכיבי ה-method מופיעה במאמרי העזרה של Memcache API. ברשימה שלמטה מפורטות כמה מהשיטות הנפוצות ביותר:

memcache_add(key, value, time, namespace)
Async auto-batching memcache add().
memcache_cas(key, value, time, namespace)
Async auto-batching memcache Client cas() (compare-and-swap).
memcache_decr(key, delta, initial_value, namespace)
Async auto-batching memcache decr().
memcache_delete(key, seconds, namespace)
Async auto-batching memcache delete().
memcache_get(key, namespace, use_cache)
Async auto-batching memcache get().

מחזירה Future שהערך המוחזר שלה הוא הערך שאוחזר מ-memcache או None.

memcache_gets(key, namespace, use_cache)
Async auto-batching memcache gets().
memcache_incr(key, delta, initial_value, namespace)
Async auto-batching memcache incr().
memcache_replace(key, value, time, namespace)
Async auto-batching memcache replace().
memcache_set(key, value, time, namespace, use_cache)
Async auto-batching memcache set().
urlfetch(url, payload, method, headers, allow_truncated, follow_redirects, validate_certificate, deadline, callback)
Async auto-batching urlfetch fetch().

שיטות לניהול עסקאות

call_on_commit(callback)
Queues a callback to call upon successful commit of a transaction.

אם לא מדובר בעסקה, מתבצעת קריאה חוזרת באופן מיידי.

בעסקה, יכול להיות שיירשמו כמה קריאות חוזרות, והן יופעלו אחרי שהעסקה תאושר, בסדר שבו הן נרשמו. אם העסקה תיכשל, הקריאות החוזרות לא יופעלו.

אם פונקציית callback מעלה חריג, הוא עולה כרגיל. המשמעות היא: אם הקריאה החוזרת מופעלת באופן מיידי, כל חריגה שהיא מעלה תועבר באופן מיידי. אם השיחה נדחית עד לביצוע commit, ה-callbacks שנותרו ידלגו והחריגה תעלה דרך השיחה transaction(). (עם זאת, העסקה כבר אושרה בשלב הזה).

ארגומנטים

callback
פונקציית קריאה חוזרת. פונקציית הקריאה החוזרת הזו לא מקבלת פרמטרים ולא מחזירה כלום.
in_transaction()
Returns True if this Context represents a transaction, False otherwise.

שיטות סטטיות

default_cache_policy(key)
Checks for a _use_cache class variable on the entity's model class; if there is one, return it. אחרת, מחזירה None.
default_datastore_policy(key)
Checks for a _use_datastore class variable on the entity's model class; if there is one, return it. אחרת, מחזירה None.
default_memcache_policy(key)
Checks for a _use_memcache class variable on the entity's model class; if there is one, return it. אחרת, מחזירה None.
default_memcache_timeout_policy(key)
Checks for a _memcache_timeout class variable on the entity's model class; if there is one, return it. אחרת, מחזירה None.