利用 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)
中检索该状态。每个状态 (state) 也具有状态 (status),即反映功能可用性的枚举:ENABLED
或 DISABLED
。请参阅下文,了解此 API 中当前启用的服务的列表。
支持的功能
API 目前支持以下功能:
能力 | getStatus 的参数 |
---|---|
Blobstore 的可用性 | Capability.BLOBSTORE |
数据存储区读取 | Capability.DATASTORE |
数据存储区写入 | Capability.DATASTORE_WRITE |
Google 图片服务的可用性 | Capability.IMAGES |
邮件服务的可用性 | Capability.MAIL |
Memcache 服务的可用性 | Capability.MEMCACHE |
任务队列服务的可用性 | Capability.TASKQUEUE |
URL Fetch 服务的可用性 | Capability.URL_FETCH |