Avec l'API Capabilities, votre application peut détecter les pannes et les temps d'arrêt planifiés pour des fonctionnalités d'API spécifiques. Vous pouvez utiliser cette API pour réduire les temps d'arrêt de votre application en détectant le moment où une fonctionnalité n'est pas disponible et en la désactivant. .
Par exemple, si vous passez par l'API Images pour redimensionner des images, vous pouvez utiliser l'API Capabilities pour détecter à quel moment l'API Images n'est pas disponible et ignorer le redimensionnement :
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.
}
Vous pouvez interroger séparément la disponibilité des opérations de lecture et d'écriture dans Datastore. L'exemple suivant montre comment procéder et comment envoyer un message aux utilisateurs lors des temps d'arrêt :
CapabilityStatus status =
service.getStatus(Capability.DATASTORE_WRITE).getStatus();
if (status == CapabilityStatus.DISABLED) {
// Datastore is in read-only mode.
}
Utiliser l'API Capabilities dans Java 8
Chaque capacité est représentée sous la forme d'une constante statique dans la classe Capability, telle que Capability.DATASTORE_WRITE
.
Chaque capacité est associée à un état que vous pouvez extraire de CapabilitiesService.getStatus(Capability)
.
Chaque état possède un statut, qui est une énumération reflétant la disponibilité d'une capacité : ENABLED
ou DISABLED
. Consultez ci-dessous la liste des services actuellement activés dans cette API.
Fonctionnalités proposées
L'API propose actuellement les fonctionnalités suivantes :
Capacité | Arguments pour getStatus |
---|---|
Disponibilité du Blobstore | Capability.BLOBSTORE |
Lectures dans le datastore | Capability.DATASTORE |
Écritures Datastore | Capability.DATASTORE_WRITE |
Disponibilité du service Images | Capability.IMAGES |
Disponibilité du service Mail | Capability.MAIL |
Disponibilité du service Memcache | Capability.MEMCACHE |
Disponibilité du service Task Queue | Capability.TASKQUEUE |
Disponibilité du service URL Fetch | Capability.URL_FETCH |