Funções de Cache¶
Introdução¶
Cache na nuvem, lançado em Jitterbit versão 8.12, permite armazenar dados temporariamente na nuvem. O valor armazenado em cache é 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 qualquer um dos ReadCache
ou WriteCache
funções (descritas abaixo), esteja ciente destas notas importantes:
- Ao definir um cache para um ambiente, deve-se tomar cuidado para 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
eReadCache
os valores não são acessíveis por meio do Management Console.- O limite padrão de uso
WriteCache
é para um máximo de 100 chamadas por minuto por organização.
Exemplos usando ReadCache
e WriteCache
são cobertos com as 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:
- Assuma 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 vários 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 executa Chain A e o Agente 2 executa Chain B, então os dados gerados por Chain A não estão disponíveis para Chain B. O uso de cache em nuvem em vez de armazenamento temporário supera esse problema.
- Os dados podem ser compartilhados entre operações assíncronas dentro de um projeto.
- Os erros gerados em diferentes operações podem ser armazenados em um cache comum. Ao acumular os resultados da operação dessa maneira, alertas mais abrangentes podem ser criados.
- Os tokens de login podem ser compartilhados entre as operações.
WriteCache
eReadCache
funções podem ser usadas para compartilhar dados entre projetos. Antes do armazenamento em cache na nuvem estar 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 na nuvem, grandes projetos agora podem ser divididos em projetos menores, o que permite acesso a permissões mais granulares, bem como compartimentalização de desenvolvimento e teste.
ReadCache
¶
Declaração¶
type ReadCache(string name[, long expirationSeconds, string scope])
Sintaxe¶
ReadCache(<name>, <expirationSeconds>, <scope>)
Parâmetros Necessá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 (1800 segundos). O máximo é de 30 dias (2592000 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 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é que expire, independentemente de como essa operação foi iniciada ou em qual agente a operação é executada.
Descrição¶
Lê de um cache comum armazenado no Jitterbit 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 Necessá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 (1800 segundos). O máximo é de 30 dias (2592000 segundos). Se nenhuma expiração ou uma expiração não positiva for especificada, a expiração do valor em cache será renovada usando a expiração da última gravação. O tempo de expiração máximo permitido é definido por sua organização e/ou Jitterbit 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é que expire, independentemente de como essa operação foi iniciada ou em qual agente a operação é executada.
Descrição¶
Grava em um cache comum armazenado no Jitterbit 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: Usando Apenas o Escopo¶
Este exemplo inclui a especificação do ambiente no scope
parâmetro e definindo 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 (2592000 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 (2592000 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");