Con la API Capabilities, tu aplicación puede detectar interrupciones y periodos inactivos programados de funciones de la API específicas. Puedes usar esta API para reducir el tiempo de inactividad de tu aplicación detectando cuándo no está disponible una función y, a continuación, omitiéndola. .
Por ejemplo, si usas la API Images para cambiar el tamaño de las imágenes, puedes usar la API Capabilities para detectar cuándo no está disponible la API Images y omitir el cambio de tamaño:
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)
La API de Datastore proporciona un wrapper de conveniencia para las funciones de lectura y escritura de Datastore. Aunque puedes probar las funciones simplemente proporcionando el nombre de la función como argumento a CapabilitySet(), en este caso también puedes usar los objetos db.READ_CAPABILITY y db.WRITE_CAPABILITY.CapabilitySet En el siguiente ejemplo se muestra cómo detectar la disponibilidad de las escrituras de Datastore mediante un wrapper de conveniencia y, durante el tiempo de inactividad, proporcionar un mensaje a los usuarios:
from google.appengine.ext import db
def RenderHTMLForm(self):
if not db.WRITE_CAPABILITY.is_enabled():
# Datastore is in read-only mode.
Usar la API Capabilities en Python 2
La clase CapabilitySet define todos los métodos disponibles de esta API. Puedes asignar nombres a las funciones de forma explícita o inferirlos a partir de los métodos proporcionados por esta clase. A continuación, puedes consultar la lista de servicios habilitados actualmente en esta API.
Funciones admitidas
En estos momentos, el API admite las siguientes capacidades:
| Competencia | Argumentos de CapabilitySet |
|---|---|
| Disponibilidad del almacén de blob | "blobstore" |
| Operaciones de lectura en el almacén de datos | "datastore_v3" |
| Operaciones de escritura en Datastore | "datastore_v3", ["write"] |
| Disponibilidad del servicio de imágenes | "images" |
| Disponibilidad del servicio de correo | "mail" |
| Disponibilidad del servicio Memcache | "memcache" |
| Disponibilidad del servicio de cola de tareas | "taskqueue" |
| Disponibilidad del servicio de extracción de URL | "urlfetch" |