您的應用程式可使用 Capabilities API 來偵測特定 API 功能的運作中斷和排定停機時間。您可以使用這個 API 來偵測特定功能無法使用的時間,然後略過該功能,藉此縮短應用程式中的停機時間。。
舉例來說,如果您使用 Images API 調整圖片大小,您可以利用 Capabilities API 來偵測 Images API 無法使用的時間,並略過調整大小:
import com.google.appengine.api.capabilities.*;
CapabilitiesService service =
CapabilitiesServiceFactory.getCapabilitiesService();
CapabilityStatus status = service.getStatus(Capability.IMAGES).getStatus();
if (status == CapabilityStatus.DISABLED) {
// Images API is not available.
}
您可以單獨查詢 Datastore 讀取與寫入功能的可用性。以下範例說明如何偵測 Datastore 寫入的可用性,並在停機時間向使用者提供訊息:
CapabilityStatus status =
service.getStatus(Capability.DATASTORE_WRITE).getStatus();
if (status == CapabilityStatus.DISABLED) {
// Datastore is in read-only mode.
}
在 Java 8 中使用 Capabilities API
每個 Capability 在 Capability 類別中都是以靜態常數表示,例如 Capability.DATASTORE_WRITE
。每個 Capability 都有一個狀態,您可以從 CapabilitiesService.getStatus(Capability)
擷取。每個狀態都有一個狀態,該狀態會反映出特定功能的可用性:ENABLED
或 DISABLED
。請參閱下方內容,取得這個 API 目前已啟用的服務清單。
支援的功能
這個 API 目前支援下列功能:
功能 | getStatus 的引數 |
---|---|
Blobstore 的可用性 | Capability.BLOBSTORE |
讀取資料儲存庫 | Capability.DATASTORE |
資料儲存庫的寫入功能 | Capability.DATASTORE_WRITE |
圖片服務的可用性 | Capability.IMAGES |
郵件服務的可用性 | Capability.MAIL |
Memcache 服務的可用性 | Capability.MEMCACHE |
工作佇列服務的可用性 | Capability.TASKQUEUE |
網址擷取服務的可用性 | Capability.URL_FETCH |