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" |