Com a API Capabilities, a sua aplicação pode detetar interrupções e tempo de inatividade agendado para capacidades da API específicas. Pode usar esta API para reduzir o tempo de inatividade na sua aplicação ao detetar quando uma capacidade está indisponível e, em seguida, ignorá-la. .
Por exemplo, se usar a API Images para redimensionar imagens, pode usar a API Capabilities para detetar quando a API Images está indisponível e ignorar o redimensionamento:
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)
A API Datastore oferece uma união de conveniência para as capacidades de leitura e escrita do Datastore. Embora possa testar as capacidades simplesmente fornecendo o nome da capacidade como um argumento para CapabilitySet()
, neste caso, também pode usar os objetos de conveniência db.READ_CAPABILITY
e db.WRITE_CAPABILITY
CapabilitySet
. O exemplo seguinte mostra como detetar a disponibilidade de escritas do Datastore através de um wrapper de conveniência e, durante o tempo de inatividade, apresentar uma mensagem aos utilizadores:
from google.appengine.ext import db
def RenderHTMLForm(self):
if not db.WRITE_CAPABILITY.is_enabled():
# Datastore is in read-only mode.
Usar a API Capabilities no Python 2
A classe CapabilitySet define todos os métodos disponíveis para esta API. Pode atribuir nomes explícitos às capacidades ou inferi-los a partir dos métodos fornecidos por esta classe. Veja abaixo a lista de serviços atualmente ativados nesta API.
Capacidades suportadas
Atualmente, a API suporta as seguintes capacidades:
Capacidade | Argumentos para CapabilitySet |
---|---|
Disponibilidade do blobstore | "blobstore" |
Leituras do Datastore | "datastore_v3" |
Escritas do Datastore | "datastore_v3", ["write"] |
Disponibilidade do serviço Imagens | "images" |
Disponibilidade do serviço de correio | "mail" |
Disponibilidade do serviço Memcache | "memcache" |
Disponibilidade do serviço Task Queue | "taskqueue" |
Disponibilidade do serviço de obtenção de URL | "urlfetch" |