Operaciones de estado clave-valor

En Proveedor estatal tiene operaciones clave-valor para almacenar el estado.

Nota: Estos ejemplos utilizan vcr.getInstanceState() para el estado compartido por todas las réplicas. Para el estado por conversación, utilice vcr.createSessionWithId(id) con un UUID determinista del contexto de la solicitud (por ejemplo, conversation_uuid de una devolución de llamada de voz). No utilice nunca vcr.createSession() a escala mundial - véase Proveedor estatal: Alcance de la sesión para más detalles.

Establecer un valor

Mediante una clave, puede almacenar un valor para recuperarlo más tarde.

Firma del método

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

Establecer un valor

const state = vcr.getInstanceState();

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

Incrementar un valor

Si ha almacenado un número entero, puede incrementarlo en una cantidad especificada.

Firma del método

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

Incrementar un valor

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

Disminuir un valor

Si ha almacenado un número entero, puede disminuirlo en una cantidad especificada.

Firma del método

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

Disminuir un valor

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

Obtener un valor

Mediante una clave, puede recuperar un valor almacenado previamente.

Firma del método

get<T>(key: string)

Obtener un valor

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

Caducar un valor

Mediante una tecla, puede hacer caducar un valor previamente almacenado tras un número determinado de segundos.

Firma del método

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

Tipos

expire admite un conjunto de opciones(EXPIRE_OPTION):

  • NX: Establecer caducidad sólo cuando la clave no tiene caducidad
  • XX: Establecer caducidad sólo cuando la clave tiene una caducidad existente
  • GT: Establecer caducidad sólo cuando la nueva caducidad es mayor que la actual.
  • LT: Fijar caducidad sólo cuando la nueva caducidad sea inferior a la actual.

Expiración de un valor

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

Borrar un valor

Mediante una tecla, puede borrar un valor previamente almacenado.

Firma del método

delete<T>(key: string)

Borrar un valor

await state.delete("obj");