Operaciones de estado clave-valor

El Proveedor estatal cuenta con operaciones de 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 información.

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 });
state = vcr.getInstanceState()

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

Incrementar un valor

Si has almacenado un número entero, puedes incrementarlo en una cantidad determinada.

Firma del método

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

Incrementar un valor

await state.increment("count", 1);
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);
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");
object = await state.get('obj')

Caducar un valor

Mediante una clave, puedes hacer que un valor almacenado previamente caduque 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 la fecha de caducidad solo cuando la clave ya tenga una fecha de caducidad
  • GT: Establecer caducidad sólo cuando la nueva caducidad es mayor que la actual.
  • LT: Establecer la fecha de caducidad solo cuando la nueva fecha sea anterior a la actual

Expiración de un valor

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

Eliminar un valor

Con una clave, puedes borrar un valor almacenado anteriormente.

Firma del método

delete<T>(key: string)

Borrar un valor

await state.delete("obj");
await state.delete('obj')