Coleção: projects.configs.waiters

Recurso: Waiter

O recurso Waiter aguarda até que alguma condição final em um recurso RuntimeConfig seja atingida antes de ser retornado. Por exemplo, suponha que você tenha um sistema distribuído no qual cada node é gravado em um recurso de variável indicando a preparação do node como parte do processo de inicialização.

Em seguida, você configura um recurso Waiter com a condição de sucesso definida para aguardar até que determinado número de nodes tenha feito check-in. Na sequência, o aplicativo executa um código arbitrário depois que a condição é atingida e o waiter é retornado com sucesso.

Depois de criado, o recurso Waiter é imutável.

Para saber mais como usar waiters, leia a documentação Criação de um waiter.

Representação JSON

{
  "name": string,
  "timeout": string,
  "failure": {
    object(EndCondition)
  },
  "success": {
    object(EndCondition)
  },
  "createTime": string,
  "done": boolean,
  "error": {
    object(Status)
  },
}
Campos
name

string

O nome do recurso Waiter, no formato:


projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]

[PROJECT_ID] precisa ser um código de projeto do Google Cloud válido, [CONFIG_NAME] precisa ser um recurso RuntimeConfig válido, [WAITER_NAME] precisa corresponder à especificação de segmento RFC 1035 e o comprimento de [WAITER_NAME] precisa ser inferior a 64 bytes.

Após criar um recurso Waiter, você não poderá alterar o nome dele.

timeout

string (Duration format)

[Obrigatório] Especifica o tempo limite do waiter em segundos, começando do momento em que o método waiters().create é chamado. Se esse tempo se esgotar antes das condições de sucesso ou falha serem atingidas, o waiter falhará e definirá o código error como DEADLINE_EXCEEDED.

A duração em segundos com até nove dígitos fracionais, com terminação 's'. Exemplo: "3.5s".

failure

object(EndCondition)

[Opcional] A condição de falha deste waiter. Se essa condição for atingida, done será definido como true e o código error será definido como ABORTED. Essa condição tem prioridade sobre a de sucesso. Se ambas as condições forem atingidas, será indicada uma falha. Esse valor é opcional. Se nenhuma condição de falha for definida, o único cenário de falha será de tempo limite.

success

object(EndCondition)

[Obrigatório] A condição de sucesso. Se essa condição for atingida, done será definido como true e o valor error permanecerá indefinido. A condição de falha tem prioridade sobre a de sucesso. Se ambas as condições forem atingidas, será indicada uma falha.

createTime

string (Timestamp format)

[Somente saída] O momento em que este recurso Waiter foi criado. A adição do valor de timeout a esse momento gera um prazo de tempo limite para o waiter.

Um timestamp no formato UTC "Zulu" RFC3339 é precisamente medido em nanossegundos. Exemplo: "2014-10-02T15:01:23.045123456Z".

done

boolean

[Somente saída] Se o valor é false, o waiter ainda está aguardando uma das condições ser atingida.

Se verdadeiro, o waiter foi concluído. Se o waiter foi concluído devido a tempo limite esgotado ou falha, error é definido.

error

object(Status)

[Somente saída] Se o waiter foi encerrado devido a falha ou tempo limite esgotado, esse valor é definido.

EndCondition

A condição que o recurso Waiter está aguardando.

Representação JSON

{
  "cardinality": {
    object(Cardinality)
  },
}
Campos
cardinality

object(Cardinality)

A cardinalidade de EndCondition.

Cardinalidade

A condição de cardinalidade do recurso Waiter. Ela é atingida quando o número de variáveis em um prefixo de caminho especificado alcança a quantidade predefinida. Por exemplo, se você definir uma condição de cardinalidade em que path é definido como /foo e o número de caminhos é definido como 2, as seguintes variáveis atingirão a condição no recurso RuntimeConfig:

  • /foo/variable1 = "value1"
  • /foo/variable2 = "value2"
  • /bar/variable3 = "value3"

No entanto, a mesma condição não será atingida se number for definido como 3, porque há somente dois caminhos que começam com /foo. As condições de cardinalidade são recursivas, todas as subárvores no prefixo do caminho específico são contadas.

Representação JSON

{
  "path": string,
  "number": number,
}
Campos
path

string

A raiz da subárvore de variáveis que será monitorada. Por exemplo, /foo.

number

number

O número de variáveis em path que precisa existir para atingir essa condição. Se não for especificado, o padrão 1 será usado.

Métodos

create

Cria um recurso Waiter.

delete

Exclui o waiter com o nome especificado.

get

Recebe informações sobre um único waiter.

list

Lista os waiters em uma determinada configuração.