Saltar al contenido

Funciones de Caché

Introducción

Almacenamiento en caché en la nube, publicado en Jitterbit versión 8.12, le permite almacenar datos temporalmente en la nube. El valor en caché es visible para todas las operaciones que se ejecutan en el mismo ámbito hasta que caduque el caché, independientemente de cómo se inició una operación o en qué agente se ejecuta una operación.

Al almacenar datos en caché en Harmony, en lugar de depender de almacenes de datos locales o específicos del agente, los datos se pueden compartir entre operaciones separadas y entre proyectos.

Antes de usar el ReadCacheo WriteCache(descritas a continuación), tenga en cuenta estas notas importantes:

  • Si se define una memoria caché para un ambiente, se debe tener cuidado de usar nombres de memoria caché únicos en los proyectos para evitar la sobrescritura involuntaria de valores. Obviamente, si la intención es compartir datos entre proyectos, entonces se requiere compartir el mismo nombre de caché.
  • Estas funciones funcionan solo durante el tiempo de ejecución. Si intenta probar un secuencia de comandos u operación que incluye estas funciones, se generarán errores.
  • WriteCache y ReadCache los valores no son accesibles a través de Management Console.
  • El límite predeterminado de uso WriteCache es a un máximo de 100 llamadas por minuto por organización.

Ejemplos usando ReadCache y WriteCache se tratan tanto con las funciones individuales como en los Ejemplos abajo.

Casos de Uso

Los siguientes son varios ejemplos de casos de uso en los que es posible que desee utilizar el almacenamiento en caché en la nube:

  • Suponga dos cadenas de operación, Cadena A y Cadena B, en un solo proyecto. Estas cadenas se ejecutan por separado. Con un solo agente, el almacenamiento temporal se puede compartir entre las cadenas. Pero en un ambiente de varios agentes, el almacenamiento temporal no se puede utilizar, ya que es local para el agente que ejecuta una operación y no para el proyecto en su conjunto. Si el Agente 1 ejecuta la Cadena A y el Agente 2 ejecuta la Cadena B, los datos generados por la Cadena A no estarán disponibles para la Cadena B. El uso del almacenamiento en caché en la nube en lugar del almacenamiento temporal soluciona este problema.
  • Los datos se pueden compartir entre operaciones asincrónicas dentro de un proyecto.
  • Los errores que se generan a través de diferentes operaciones podrían almacenarse en un caché común. Al acumular los resultados de las operación de esta manera, se pueden crear alertas más completas.
  • Los tokens de inicio de sesión se pueden compartir entre operaciones.
  • WriteCache y ReadCache Las funciones se pueden utilizar para compartir datos entre proyectos. Antes de que estuviera disponible el almacenamiento en caché en la nube, se requería que todas las operaciones relacionadas estuvieran dentro del mismo proyecto, lo que podía conducir a proyectos muy grandes. Al usar el almacenamiento en caché en la nube, los proyectos grandes ahora se pueden dividir en proyectos más pequeños, lo que permite un acceso a permisos más granular, así como la compartimentación del desarrollo y las pruebas.

ReadCache

Declaración

type ReadCache(string name[, long expirationSeconds, string scope])

Sintaxis

ReadCache(<name>, <expirationSeconds>, <scope>)

Parámetros Requeridos

  • name: Hasta 256 caracteres.

Parámetros Opcionales

  • expirationSeconds: Número de segundos antes de que caduque el valor almacenado en caché. El valor predeterminado es 30 minutos (1800 segundos). El máximo es de 30 días (2592000 segundos). cuando se usa para ReadCache, el valor almacenado en caché caducará en este número de segundos después de una lectura exitosa. Si no se especifica una caducidad o una caducidad no positiva, la caducidad del valor almacenado en caché será la caducidad de la última escritura.
  • scope: Determina si el alcance de la memoria caché es para el proyecto actual. El alcance de la memoria caché puede ser "project" o "environment". (Las formas más cortas "proj" y "env" también se aceptan.) El ámbito predeterminado es "project" si no se especifica ningún alcance o una cadena vacía. El valor en caché es visible para todas las operaciones que se ejecutan en el mismo ámbito hasta que caduca, independientemente de cómo se inició esa operación o en qué agente se ejecuta la operación.

Descripción

Lee desde un caché común almacenado en Harmony.

Ejemplos

// Read a cached value in the default scope (project)
myToken = ReadCache("authToken");

// Read a cached value in the "env" scope
myToken = ReadCache("authToken", "", "env");

// Read a cached value in the environment scope with a default timeout
lastTimeStamp = ReadCache("lastTimeStamp", -1, "env");

WriteCache

Declaración

void WriteCache(string name, type value[, long expirationSeconds, string scope])

Sintaxis

WriteCache(<name>, <value>, <expirationSeconds>, <scope>)

Parámetros Requeridos

  • name: Hasta 256 caracteres.
  • value: No puede exceder 1 MB.

Parámetros Opcionales

  • expirationSeconds: Número de segundos antes de que caduque el valor almacenado en caché. El valor predeterminado es 30 minutos (1800 segundos). El máximo es de 30 días (2592000 segundos). Si no se especifica una caducidad o una caducidad no positiva, la caducidad del valor almacenado en caché se renovará utilizando la caducidad de la última escritura. El tiempo de caducidad máximo permitido lo establece su organización y/o Harmony.
  • scope: Determina si el alcance de la memoria caché es para el proyecto actual. El alcance de la memoria caché puede ser "project" o "environment". (Las formas más cortas "proj" y "env" también se aceptan.) El ámbito predeterminado es "project" si no se especifica ningún alcance o una cadena vacía. El valor en caché es visible para todas las operaciones que se ejecutan en el mismo ámbito hasta que caduca, independientemente de cómo se inició esa operación o en qué agente se ejecuta la operación.

Descripción

Escribe en un caché común almacenado en Harmony.

Advertencia

El límite predeterminado de uso WriteCache es un máximo de 100 llamadas por minuto por organización.

Ejemplos

// Write a value to the cache in the default scope ("project")
WriteCache("authToken", myToken);

// Write a value (a timestamp using the Now() function)
// to the cache in the environment ("env") scope with a default timeout
WriteCache("lastTimeStamp", Now(), -1, "env");

// Writing a value without specifying an expiration or scope
// $authToken would be generated from a login operation
WriteCache("authToken", $authToken);

// Write a value to the cache in the "env" scope
// No expiration specified
WriteCache("City", "Houston", "", "env");

Ejemplos

Ejemplo 1: Alcance del Proyecto

// Write a value to the cache in the default scope (project)
WriteCache("authToken", myToken);


// Read the cached value in the default scope (project)
myToken = ReadCache("authToken");

Ejemplo 2: Alcance del Entorno

// Write a value (a timestamp using the Now() function)
// to the cache in the environment ("env") scope with a default timeout
WriteCache("lastTimeStamp", Now(), -1, "env");

// Read the cached value in the environment scope with a default timeout
lastTimeStamp = ReadCache("lastTimeStamp", -1, "env");

Ejemplo 3: Sin Segundos de Caducidad Ni Alcance

// Writing a value without specifying an expiration or scope
// $authToken would be generated from a login operation
WriteCache("authToken", $authToken);

// Reading the cached value:
myToken = ReadCache("authToken");

Ejemplo 4: Usar Solo el Alcance

Este ejemplo incluye la especificación del ambiente en el scope y establecer el tiempo de espera en una cadena vacía. El expiration_seconds puede ser una cadena vacía, un número negativo (como "-1"), o un número de segundos hasta 30 días (2592000 segundos).

// Writing specifying the environment only
WriteCache("City", "Houston", "", "env");

Ejemplo 5: Uso de Segundos de Caducidad Únicamente

Este ejemplo especifica una caducidad de 300 segundos. El expiration_seconds puede ser una cadena vacía, un número negativo (como "-1"), o un número de segundos hasta 30 días (2592000 segundos).

// Writing specifying the expiration in seconds
WriteCache("City", "Houston", "300");

Lectura del valor en caché. El valor almacenado en caché se devolverá solo si la llamada sigue dentro de los 300 segundos posteriores a la escritura; de lo contrario, se devolverá un valor nulo:

// Reading the cached value
city = ReadCache("City");