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:
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.
}
Pode consultar separadamente a disponibilidade de leituras e escritas do Datastore. O exemplo seguinte mostra como detetar a disponibilidade de gravações do Datastore e, durante o tempo de inatividade, apresentar uma mensagem aos utilizadores:
CapabilityStatus status =
service.getStatus(Capability.DATASTORE_WRITE).getStatus();
if (status == CapabilityStatus.DISABLED) {
// Datastore is in read-only mode.
}
Usar a API Capabilities no Java 8
Cada capacidade é representada como uma constante estática na classe Capability, como Capability.DATASTORE_WRITE.
Cada capacidade tem um estado que pode obter a partir de
CapabilitiesService.getStatus(Capability).
Cada estado tem um estado, que é uma enumeração que reflete a disponibilidade de uma capacidade: ENABLED ou DISABLED. Veja abaixo a
lista de serviços atualmente ativados nesta API.
Capacidades suportadas
Atualmente, a API suporta as seguintes capacidades:
| Capacidade | Argumentos para getStatus |
|---|---|
| Disponibilidade do blobstore | Capability.BLOBSTORE |
| Leituras do Datastore | Capability.DATASTORE |
| Escritas do Datastore | Capability.DATASTORE_WRITE |
| Disponibilidade do serviço Imagens | Capability.IMAGES |
| Disponibilidade do serviço de correio | Capability.MAIL |
| Disponibilidade do serviço Memcache | Capability.MEMCACHE |
| Disponibilidade do serviço Task Queue | Capability.TASKQUEUE |
| Disponibilidade do serviço de obtenção de URL | Capability.URL_FETCH |