Ir para o conteúdo

Funções de Cache

Introdução

O cache na nuvem permite armazenar dados temporariamente na nuvem. O valor armazenado em cache fica visível para todas as operações em execução no mesmo escopo até que o cache expire, independentemente de como uma operação foi iniciada ou em qual agente uma operação é executada.

Ao armazenar dados em cache no Harmony, em vez de depender de armazenamentos de dados locais ou específicos do agente, os dados podem ser compartilhados entre operações separadas e entre projetos.

Antes de usar o ReadCache ou WriteCache funções (descritas abaixo), esteja ciente destas notas importantes:

  • Ao definir um cache para um ambiente, deve-se tomar cuidado ao usar nomes de cache exclusivos nos projetos para evitar a substituição não intencional de valores. Obviamente, se a intenção é compartilhar dados entre projetos, é necessário compartilhar o mesmo nome de cache.
  • Estas funções funcionam apenas durante o tempo de execução. Se tentar testar um script ou operação que inclua essas funções, serão gerados erros.
  • WriteCache e ReadCache os valores não são acessíveis através do Management Console.
  • O limite padrão de uso WriteCache é de no máximo 100 chamadas por minuto por organização.

Exemplos usando ReadCache e WriteCache são abordados nas funções individuais e nos Exemplos abaixo.

Casos de Uso

A seguir estão vários exemplos de casos de uso em que você pode querer usar o cache na nuvem:

  • Suponha duas cadeias de operação, Chain A e Chain B, em um único projeto. Essas cadeias são executadas separadamente. Com um único agente, o armazenamento temporário pode ser compartilhado entre as cadeias. Mas em um ambiente de múltiplos agentes, o armazenamento temporário não pode ser usado, pois é local para o agente que executa uma operação e não para o projeto como um todo. Se o Agente 1 executar Chain A e o Agente 2 executar Chain B, os dados gerados por Chain A não estarão disponíveis para Chain B. Usar o cache na nuvem em vez do armazenamento temporário supera esse problema.
  • Os dados podem ser compartilhados entre operações assíncronas dentro de um projeto.
  • Erros gerados em diferentes operações podem ser armazenados em um cache comum. Ao acumular resultados operação dessa maneira, alertas mais abrangentes podem ser criados.
  • Os tokens de login podem ser compartilhados entre operações.
  • WriteCache e ReadCache funções podem ser usadas para compartilhar dados entre projetos. Antes da disponibilização do cache na nuvem, todas as operações relacionadas precisavam estar dentro do mesmo projeto, o que poderia levar a projetos muito grandes. Ao usar o cache na nuvem, grandes projetos agora podem ser divididos em projetos menores, o que permite acesso a permissões mais granulares, bem como compartimentação de desenvolvimento e testes.

ReadCache

Declaração

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

Sintaxe

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

Parâmetros Obrigatórios

  • name: Até 256 caracteres.

Parâmetros Opcionais

  • expirationSeconds: Número de segundos antes que o valor armazenado em cache expire. O padrão é 30 minutos (1.800 segundos). O máximo é 30 dias (2.592.000 segundos). Quando usado para ReadCache, o valor armazenado em cache expirará neste número de segundos após uma leitura bem-sucedida. Se nenhuma expiração ou uma expiração não positiva for especificada, a expiração do valor armazenado em cache será a expiração da última gravação.
  • scope: Determina se o escopo do cache é para o projeto atual. O escopo do cache pode ser "project" ou "environment". (As formas mais curtas "proj" e "env" também são aceitos.) O escopo padrão é "project" se nenhum escopo ou uma string vazia for especificada. O valor armazenado em cache fica visível para todas as operações em execução no mesmo escopo até expirar, independentemente de como a operação foi iniciada ou em qual agente a operação é executada.

Descrição

Lê de um cache comum armazenado no Harmony.

Exemplos

// 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

Declaração

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

Sintaxe

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

Parâmetros Obrigatórios

  • name: Até 256 caracteres.
  • value: Não pode exceder 1MB.

Parâmetros Opcionais

  • expirationSeconds: Número de segundos antes que o valor armazenado em cache expire. O padrão é 30 minutos (1.800 segundos). O máximo é 30 dias (2.592.000 segundos). Se nenhuma expiração ou uma expiração não positiva for especificada, a expiração do valor armazenado em cache será renovada usando a expiração da última gravação. O tempo máximo de expiração permitido é definido pela sua organização e/ou Harmony.
  • scope: Determina se o escopo do cache é para o projeto atual. O escopo do cache pode ser "project" ou "environment". (As formas mais curtas "proj" e "env" também são aceitos.) O escopo padrão é "project" se nenhum escopo ou uma string vazia for especificada. O valor armazenado em cache fica visível para todas as operações em execução no mesmo escopo até expirar, independentemente de como a operação foi iniciada ou em qual agente a operação é executada.

Descrição

Grava em um cache comum armazenado no Harmony.

Aviso

O limite padrão de uso WriteCache é um máximo de 100 chamadas por minuto por organização.

Exemplos

// 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");

Exemplos

Exemplo 1: Escopo do Projeto

// 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");

Exemplo 2: Escopo Ambiental

// 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");

Exemplo 3: Sem Segundos de Expiração Ou Escopo

// 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");

Exemplo 4: Use Apenas Escopo

Este exemplo inclui a especificação do ambiente no arquivo scope parâmetro e definir o tempo limite para uma string vazia. O expiration_seconds pode ser uma string vazia, um número negativo (como "-1") ou um número de segundos até 30 dias (2.592.000 segundos).

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

Exemplo 5: Use Apenas Segundos de Expiração

Este exemplo especifica uma expiração de 300 segundos. O expiration_seconds pode ser uma string vazia, um número negativo (como "-1") ou um número de segundos até 30 dias (2.592.000 segundos).

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

Leitura do valor em cache. O valor armazenado em cache será retornado somente se a chamada ocorrer dentro de 300 segundos após a gravação; caso contrário, um valor nulo será retornado:

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