Mithilfe der Capabilities API kann Ihre Anwendung für bestimmte API-Funktionen Ausfälle und geplante Ausfallzeiten erkennen. Mit dieser API können Sie die Ausfallzeiten Ihrer Anwendung reduzieren, indem Sie erkennen, wann eine Funktion nicht verfügbar ist, und diese dann umgehen. .
Wenn Sie beispielsweise mit der Images API die Größe von Bildern ändern, können Sie mithilfe der Capabilities API ermitteln, wann die Images API nicht verfügbar ist, und die Größenänderung dann überspringen:
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.
}
Die Verfügbarkeit von Lese- und Schreibvorgängen in Datastore kann separat abgefragt werden. Im folgenden Beispiel wird gezeigt, wie die Verfügbarkeit von Schreibvorgängen in Datastore erkannt und Nutzern bei Ausfallzeiten eine Nachricht angezeigt wird:
CapabilityStatus status =
service.getStatus(Capability.DATASTORE_WRITE).getStatus();
if (status == CapabilityStatus.DISABLED) {
// Datastore is in read-only mode.
}
Capabilities API in Java 8 verwenden
Jede Funktion wird als statische Konstante in der Capability-Klasse dargestellt, z. B. Capability.DATASTORE_WRITE
.
Der Status einer Funktion kann aus CapabilitiesService.getStatus(Capability)
abgerufen werden.
Jeder Zustand hat einen Status, also eine Enumeration, aus der sich die Verfügbarkeit einer Funktion ergibt: entweder ENABLED
oder DISABLED
. Im Folgenden finden Sie eine Liste der Dienste, die derzeit in dieser API aktiviert sind.
Unterstützte Funktionen
Die API unterstützt zurzeit die folgenden Funktionen:
Funktion | Argumente für getStatus |
---|---|
Verfügbarkeit von Blobstore | Capability.BLOBSTORE |
Datastore-Lesevorgänge | Capability.DATASTORE |
Datastore-Schreibvorgänge | Capability.DATASTORE_WRITE |
Verfügbarkeit des Images-Dienstes | Capability.IMAGES |
Verfügbarkeit des Mail-Dienstes | Capability.MAIL |
Verfügbarkeit des Memcache-Dienstes | Capability.MEMCACHE |
Verfügbarkeit des Task Queue-Dienstes | Capability.TASKQUEUE |
Verfügbarkeit des URL-Abrufdienstes | Capability.URL_FETCH |