Operações de estado do tipo chave-valor

O Prestador estatal possui operações de chave-valor para armazenar o estado.

Observação: Esses exemplos utilizam vcr.getInstanceState() para o estado compartilhado entre todas as réplicas. Para o estado por conversa, use vcr.createSessionWithId(id) com um UUID determinístico do contexto da solicitação (por exemplo, conversation_uuid de um retorno de chamada de voz). Nunca use vcr.createSession() em âmbito global — veja Provedor de estado: escopo da sessão para mais detalhes.

Definir um valor

Usando uma chave, é possível armazenar um valor para recuperá-lo posteriormente.

Assinatura do método

set<T>(key: string, value: T)

Definindo um valor

const state = vcr.getInstanceState();

await state.set("obj", { "foo": bar });

Incrementar um valor

Se você tiver armazenado um número inteiro, poderá incrementá-lo em um valor especificado.

Assinatura do método

increment<T>(key: string, count: number)

Incrementar um valor

await state.increment("count", 1);

Diminuir um valor

Se você tiver armazenado um número inteiro, poderá diminuí-lo em um valor especificado.

Assinatura do método

decrement<T>(key: string, count: number)

Diminuir um valor

await state.decrement("count", 1);

Obter um valor

Usando uma chave, é possível recuperar um valor armazenado anteriormente.

Assinatura do método

get<T>(key: string)

Obtendo um valor

const object = await state.get("obj");

Expirar um valor

Usando uma chave, é possível fazer com que um valor armazenado anteriormente expire após um número especificado de segundos.

Assinatura do método

expire(key: string, seconds: number, option?: EXPIRE_OPTION)

Tipos

expire oferece um conjunto de opções (EXPIRE_OPTION):

  • NX: Definir prazo de validade somente quando a chave não tiver prazo de validade
  • XX: Definir a data de validade somente quando a chave já tiver uma data de validade definida
  • GT: Definir a data de validade somente quando a nova data for posterior à atual
  • LT: Definir a data de validade somente quando a nova data for anterior à atual

Expirar um valor

await state.expire("obj", 200);

Excluir um valor

Usando uma chave, é possível excluir um valor armazenado anteriormente.

Assinatura do método

delete<T>(key: string)

Exclusão de um valor

await state.delete("obj");