Funções de cache no Jitterbit Studio
Introdução
O cache em nuvem permite armazenar dados temporariamente na nuvem. O valor em cache é visível para todas as operações que estão sendo executadas no mesmo escopo até que o cache expire, independentemente de como uma operação foi iniciada ou em qual agente uma operação está sendo executada.
Ao armazenar dados em Harmony, em vez de depender de armazenamentos de dados locais ou específicos de agentes, os dados podem ser compartilhados entre operações separadas e em diferentes projetos.
Antes de usar as funções ReadCache ou WriteCache (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 sobrescrição acidental de valores. Se a intenção é compartilhar dados entre projetos, então é necessário compartilhar o mesmo nome de cache.
- Essas funções funcionam apenas durante a execução. Se tentar testar um script ou operação que inclua essas funções, erros serão gerados.
- Os valores de
WriteCacheeReadCachenão são acessíveis através do Console de Gerenciamento. - Por padrão,
WriteCacheeReadCache(combinados) são limitados a um máximo de 100 chamadas por minuto para uma organização.
Exemplos usando ReadCache e WriteCache são abordados tanto dentro das funções individuais quanto nos Exemplos abaixo.
Casos de uso
A seguir estão vários exemplos de casos de uso onde você pode desejar usar o cache em nuvem:
- Suponha que existam duas cadeias de operações, Cadeia A e Cadeia 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 com múltiplos agentes, o armazenamento temporário não pode ser usado, pois é local ao agente que executa uma operação, em vez de ser do projeto como um todo. Se o Agente 1 executa a Cadeia A e o Agente 2 executa a Cadeia B, então os dados gerados pela Cadeia A não estão disponíveis para a Cadeia B. Usar o cache em nuvem em vez de armazenamento temporário resolve esse problema.
- 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 de operações dessa maneira, alertas mais abrangentes podem ser construídos.
- Tokens de login podem ser compartilhados entre operações.
- As funções
WriteCacheeReadCachepodem ser usadas para compartilhar dados entre projetos. Antes que o cache em nuvem estivesse disponível, todas as operações relacionadas precisavam estar dentro do mesmo projeto, o que poderia levar a projetos muito grandes. Ao usar o cache em nuvem, projetos grandes agora podem ser divididos em projetos menores, o que permite um acesso a permissões mais granular, além da compartimentalização do 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 em cache expire. O padrão é 30 minutos (1800 segundos). O máximo é 30 dias (2592000 segundos). Quando usado paraReadCache, o valor em cache expirará neste número de segundos após uma leitura bem-sucedida. Se não for especificada uma expiração ou uma expiração não positiva, a expiração do valor 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 aceitas.) O escopo padrão é"project"se não for especificado um escopo ou se uma string vazia for especificada. O valor em cache é visível para todas as operações que estão sendo executadas no mesmo escopo até que expire, independentemente de como essa operação foi iniciada ou em qual agente a operação está sendo 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 em cache expire. O padrão é 30 minutos (1800 segundos). O máximo é 30 dias (2592000 segundos). Se não for especificada uma expiração ou uma expiração não positiva, a expiração do valor 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 aceitas.) O escopo padrão é"project"se não for especificado um escopo ou se uma string vazia for especificada. O valor em cache é visível para todas as operações que estão sendo executadas no mesmo escopo até que expire, independentemente de como essa operação foi iniciada ou em qual agente a operação está sendo executada.
Descrição
Escreve em um cache comum armazenado no Harmony.
Aviso
O limite padrão para o uso de 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 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: Usar apenas escopo
Este exemplo inclui a especificação do ambiente no parâmetro scope e define o tempo limite como uma string vazia. O expiration_seconds pode ser uma string vazia, um número negativo (como "-1"), ou um número de segundos de até 30 dias (2592000 segundos).
// Escrevendo especificando apenas o ambiente
WriteCache("City", "Houston", "", "env");
Exemplo 5: Usar 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 de até 30 dias (2592000 segundos).
// Escrevendo especificando a expiração em segundos
WriteCache("City", "Houston", "300");
Leitura do valor em cache. O valor em cache será retornado apenas se a chamada ocorrer dentro de 300 segundos após a escrita; caso contrário, um valor nulo será retornado:
// Lendo o valor em cache
city = ReadCache("City");