Saltar a contenido

Documentación: Nodo Memory Get

Descripción General

El nodo Memory Get permite recuperar un valor almacenado en Redis mediante una clave. Es parte del conjunto de nodos de memoria (memorynodes) que utilizan Redis como almacén de datos compartido entre ejecuciones de automatizaciones. Use este nodo cuando necesite leer un valor previamente guardado por un nodo Memory Set o por otro proceso.

Tipo de nodo: memory_get
Clase: action
Paquete: pkg/automationnode/memorynodes

¿Cuándo usar este nodo?

Use este nodo cuando necesite:

  • Recuperar un valor previamente almacenado por un nodo Memory Set
  • Compartir datos entre ejecuciones de automatizaciones o sesiones
  • Leer datos en caché (por ejemplo, IDs de sesión, tokens, contadores) para usar en nodos posteriores

Configuración del Nodo

Memory get node configuration form

El nodo requiere un único parámetro de entrada: la clave con la que se almacenó el valor en Redis. Puede configurarlo en la vista Form o en el JSON Editor.

Estructura JSON (Parámetros de entrada)

{
  "key": "key-name"
}

Campos Requeridos

Campo Tipo Descripción
key string La clave con la que se almacenó el valor en Redis

La clave puede definirse mediante el sistema de templates del motor, por ejemplo referenciando la salida de un nodo previo: {{nodo_anterior.output_field}}.

Ejemplo de configuración

{
  "key": "mi_variable_cache"
}

Salidas (Output)

El nodo produce un objeto con el valor recuperado:

Campo Tipo Descripción
value string El valor almacenado en Redis para la clave

Ejemplo de salida

{
  "value": "contenido_almacenado"
}

Puede referenciar esta salida en nodos posteriores mediante expresiones de template, por ejemplo {{memory_get.value}}.

Conectores (Connectors)

Conector Descripción
continue Se usa siempre que la ejecución finaliza correctamente

El nodo no define conectores condicionales. Siempre emite continue en caso de éxito. En caso de error, el flujo depende de la configuración OnError del nodo (stop_workflow, continue o continue_error_output).

Validación

  • key debe ser un string no vacío.
  • Si key no es un string o está vacío, la validación falla y el nodo no se ejecuta.

Dependencias

  • Redis: El nodo utiliza redis_singleton.GetRedisProducer() para conectarse a Redis. La configuración de Redis debe estar definida en las variables de entorno (REDIS_URL, REDIS_PASSWORD).

Comportamiento ante errores

  • Si la clave no existe en Redis, el cliente devuelve un error y la ejecución falla.
  • Si no hay conexión a Redis o falla la operación GET, se retorna un error.

Para flujos donde la clave puede no existir, considere usar el nodo Memory Check (memory_check), que proporciona conectores condicionales in_memory / not_in_memory según la existencia de la clave.

Nodos relacionados

Nodo Descripción
Memory Set (memory_set) Almacena un valor en Redis con clave, valor y TTL opcional
Memory Check (memory_check) Comprueba si una clave existe y obtiene valor y TTL

Uso típico

  1. Obtener un valor previamente guardado: Después de que un nodo Memory Set haya guardado un valor, un Memory Get puede recuperarlo para usarlo en nodos posteriores.
  2. Compartir datos entre ejecuciones: Los valores en Redis persisten entre ejecuciones, permitiendo compartir datos entre distintas automatizaciones o sesiones.

Flujo de ejemplo

[Trigger] → [Memory Set (key: "session_id", value: "abc123")] → [Memory Get (key: "session_id")] → [HTTP Request (usando {{memory_get.value}})]

Estructura interna (Referencia para desarrolladores)

El nodo se registra en pkg/nodelinker/node_linker.go:

"memory_get": memorynodes.NewMemoryGetAutomationNode,
type MemoryGetNode struct {
    Key string
}

type MemoryGetAutomationNode struct {
    automation.AutomationNode
    MemoryGetNode MemoryGetNode
    logger        *zap.SugaredLogger
}