您的應用程式可使用 Capabilities API 來偵測特定 API 功能的運作中斷和排定停機時間。您可以使用這個 API 來偵測特定功能無法使用的時間,然後略過該功能,藉此縮短應用程式中的停機時間。。
舉例來說,如果您使用 Images API 調整圖片大小,您可以利用 Capabilities API 來偵測 Images API 無法使用的時間,並略過調整大小:
from google.appengine.api import capabilities
def StoreUploadedProfileImage(self):
uploaded_image = self.request.get('img')
# If the images API is unavailable, we'll just skip the resize.
if capabilities.CapabilitySet('images').is_enabled():
uploaded_image = images.resize(uploaded_image, 64, 64)
store(uploaded_image)
Datastore API 提供了方便資料儲存庫讀取和寫入功能的包裝函式。雖然只需將功能名稱以引數的形式提供給 CapabilitySet()
,即可測試功能。但在這種情況下,您也可使用 db.READ_CAPABILITY
和 db.WRITE_CAPABILITY
便利 CapabilitySet
物件。以下範例顯示如何使用便利包裝函式,偵測資料儲存庫的寫入可用性,以及如何在停機期間向使用者提供相關訊息:
from google.appengine.ext import db
def RenderHTMLForm(self):
if not db.WRITE_CAPABILITY.is_enabled():
# Datastore is in read-only mode.
在 Python 2 中使用 Capabilities API
CapabilitySet 類別定義了此 API 所有的可用方法,您可以明確地指出功能,或是透過此類別提供的方法去推測這些功能。請參閱下方內容,取得這個 API 目前已啟用的服務清單。
支援的功能
這個 API 目前支援下列功能:
功能 | CapabilitySet 的引數 |
---|---|
Blobstore 的可用性 | "blobstore" |
Datastore 的讀取功能 | "datastore_v3" |
資料儲存庫的寫入功能 | "datastore_v3", ["write"] |
圖片服務的可用性 | "images" |
郵件服務的可用性 | "mail" |
Memcache 服務的可用性 | "memcache" |
工作佇列服務的可用性 | "taskqueue" |
網址擷取服務的可用性 | "urlfetch" |