Opérations sur les états clé-valeur
Les Fournisseur de l'État dispose d'opérations clé-valeur pour le stockage de l'état.
Remarque : Ces exemples utilisent vcr.getInstanceState() pour les états partagés entre toutes les répliques. Pour un état par conversation, utilisez vcr.createSessionWithId(id) avec un UUID déterministe provenant du contexte de la demande (par exemple, conversation_uuid d'un rappel vocal). Ne jamais utiliser vcr.createSession() à l'échelle mondiale - voir Fournisseur d'Etat : Définition du champ d'application de la session pour plus de détails.
Fixer une valeur
En utilisant une clé, vous pouvez stocker une valeur pour la retrouver plus tard.
Signature de la méthode
set<T>(key: string, value: T)
Définition d'une valeur
const state = vcr.getInstanceState();
await state.set("obj", { "foo": bar });
Incrémenter une valeur
Si vous avez stocké un nombre entier, vous pouvez l'incrémenter d'une valeur spécifiée.
Signature de la méthode
increment<T>(key: string, count: number)
Incrémenter une valeur
await state.increment("count", 1);
Diminuer une valeur
Si vous avez stocké un nombre entier, vous pouvez le décrémenter d'un montant spécifié.
Signature de la méthode
decrement<T>(key: string, count: number)
Diminution d'une valeur
await state.decrement("count", 1);
Obtenir une valeur
À l'aide d'une clé, vous pouvez récupérer une valeur précédemment stockée.
Signature de la méthode
get<T>(key: string)
Obtenir une valeur
const object = await state.get("obj");
Expirer une valeur
À l'aide d'une clé, vous pouvez faire expirer une valeur précédemment enregistrée après un nombre de secondes spécifié.
Signature de la méthode
expire(key: string, seconds: number, option?: EXPIRE_OPTION)
Les types
expire prend en charge une série d'options (EXPIRE_OPTION) :
NX: Fixer l'expiration uniquement lorsque la clé n'a pas d'expirationXX: Fixer l'expiration uniquement lorsque la clé a une expiration existanteGT: Fixer l'échéance uniquement lorsque la nouvelle échéance est supérieure à l'échéance actuelle.LT: Fixer l'échéance uniquement lorsque la nouvelle échéance est inférieure à l'échéance actuelle.
Expiration d'une valeur
await state.expire("obj", 200);
Supprimer une valeur
Une touche permet d'effacer une valeur précédemment enregistrée.
Signature de la méthode
delete<T>(key: string)
Suppression d'une valeur
await state.delete("obj");