Funções de Cache
Introdução
Cache em nuvem, lançado em Jitterbit versão 8.12, 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, nomes de cache exclusivos devem ser usados nos projetos para evitar a substituição não intencional de valores. Se a intenção for compartilhar dados entre projetos, será 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
eReadCache
os valores não são acessíveis através do Management Console.WriteCache
eReadCache
(combinadas) estão limitadas a um máximo de 100 chamadas por minuto para uma organização.
Exemplos usando ReadCache
e WriteCache
são abordados tanto nas funções individuais quanto 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
eReadCache
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 paraReadCache
, 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 do Ambiente
// 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 Ou Escopo de Expiração
// 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: Usando 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: Usando 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");