Programar jobs de monetização

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Visão geral dos jobs programados

A monetização oferece um programador de tarefas e um conjunto de tarefas pré-agendadas para execução em horários específicos.

A tabela abaixo lista os jobs pré-agendados fornecidos por monetização e os horários em que eles são programado para execução (todos os horários listados estão em UTC). Também está listado o gatilho de cada job.

Job Descrição Programação (UTC) Gatilho
Alíquota de imposto mensal do desenvolvedor Busca a taxa de impostos do mecanismo fiscal para cada desenvolvedor e atualiza o desenvolvedor entidade com a alíquota revisada. Primeiro dia de cada mês às 5h45 MINT.MONTHLY_DEV_TAXRATE@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Renovar a assinatura Aplica taxas recorrentes para planos de tarifas ativos ou novas taxas para planos de tarifas futuros que começar no dia atual. Todos os dias 5 segundos após a meia-noite MINT.RENEW_SUBSCRIPTIONS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Atualizador do XeFeed Retorna a taxa de câmbio em dólares americanos para cada moeda aceita. Todos os dias à meia-noite após um segundo MINT.XEFEED@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Renovar plano de tarifas para desenvolvedores Faz o cálculo das datas de renovação de um plano de tarifas e calcula as taxas de rescisão antecipada. Todos os dias às 2h20 MINT.RENEW_DEV_RATEPLAN@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Repetir redirecionamento de transações Observação: este job foi descontinuado e não tem impacto na monetização. Todos os dias às 4h30 MINT.RETRY_TX_RELAY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Limpador de transações Observação: este job foi descontinuado e não tem impacto na monetização. Todos os dias às 5h30 MINT.TX_CLEANSER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Auditoria de saldo do desenvolvedor Audita o saldo da conta de desenvolvedor. Copia o uso atual e os planos pré-pagos saldo de crédito pós-pago a uma tabela de auditoria e, em seguida, deduz o uso atual do conta de desenvolvedor e retorna o saldo de uso a zero. Primeiro dia de cada mês 5 segundos depois da meia-noite MINT.DEVELOPER_BALANCE_AUDIT@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Documentos de faturamento mensal Gera documentos de faturamento.

Observação: a Apigee não oferece mais suporte à geração de documentos de faturamento pela monetização do Apigee Edge. Consulte Aposentadorias.

No 11o dia de cada mês, 1 minuto depois da meia-noite MINT.MONTLY_BILLING_DOCS@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Contador do plano de preços para desenvolvedores Observação: este job foi descontinuado e não tem impacto na monetização. Todos os dias 3 segundos após a meia-noite MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Cobranças diárias Recalcula todos os totais de transações por hora e os usa para calcular os totais diários dos no dia anterior. Todos os dias à 1h20 MINT.CHARGE_DAILY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Cobranças por hora Calcula todos os totais de transações para cada trimestre de uma hora. 1 minuto após cada quarto de hora MINT.CHARGE_HOURLY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Atualizar configuração de notificação Reindexa todas as condições de notificação. A cada 5 minutos MINT.REFRESH_NOTIFICATION_CONFIG@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Enviar notificações por e-mail Envia notificações acumuladas por e-mail A cada hora MINT.EMAIL_NOTIFICATION@@@
management-server@@@SYSTEM@@@
management-server@@@SYSTEM
Limite de atualização Observação: este job foi descontinuado e não tem impacto na monetização. N/A (nunca é executado) MINT.REFRESH_LIMIT@@@
message-processor@@@SYSTEM@@@
message-processor@@@SYSTEM

Além das tarefas listadas acima, há tarefas que podem ser habilitadas por meio de eventos conforme listado na tabela a seguir. Para mais informações, consulte Configurar notificações.

Job Descrição Programação Gatilho
Notificação de novo pacote Envia uma notificação a todos os desenvolvedores de que um novo pacote de API está disponível. É executado uma vez:no dia em que o job é ativado, às 21h.

Observação: as notificações são enviadas apenas uma vez, mesmo que você configura uma cronExpression que resulta na execução do job vezes.

MINT.NEW_PACKAGE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Nova notificação ad hoc Envia uma notificação a todos os desenvolvedores de que os novos produtos de API estão disponíveis em determinados em mercados geográficos. É executado uma vez:no dia em que o job é ativado, às 21h.

Observação: as notificações são enviadas apenas uma vez, mesmo que você configura uma cronExpression que resulta na execução do job vezes.

MINT.ADHOC_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Notificação de novo produto Envia uma notificação a todos os desenvolvedores de que um novo produto de API está disponível. É executado uma vez:no dia em que o job é ativado, às 21h.

Observação: as notificações são enviadas apenas uma vez, mesmo que você configura uma cronExpression que resulta na execução do job vezes.

MINT.NEW_PRODUCT_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Notificação do novo plano de tarifação

Envia uma notificação aos desenvolvedores afetados de que um novo plano de tarifas está disponível. Todos os desenvolvedores inscritos no plano de tarifas principal são notificados de que um novo plano de tarifas ativos.

Além disso:

  • Se o plano de tarifas for padrão, todos os desenvolvedores serão notificados.
  • Se for um plano de tarifas da categoria de desenvolvedor, somente os desenvolvedores dessa categoria receberão notificado.
  • Se for um plano de preços para desenvolvedores, somente esse desenvolvedor específico receberá notificado.
É executado na data de início do novo plano de tarifas às 4h30 MINT.NEW_RATEPLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Novo Tnc Envia uma notificação aos desenvolvedores afetados de que os Termos e Condições novos ou revisados foram publicadas (e o desenvolvedor ainda não as aceitou). for executada 30, 7 e 1 dia antes da data de início dos Termos e Condições novos ou revisados; às 21h MINT.TNC_ACCEPTANCE_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT
Plano de preços prestes a expirar Envia uma notificação aos desenvolvedores afetados para avisar com antecedência que um plano de tarifas vai expirar. É executado 30, 7 e 1 dia antes da expiração do plano de tarifas às 21h. MINT.EXPIRING_RATE_PLAN_NOTIFY@@@
management-server@@@DEFAULT@@@
management-server@@@DEFAULT

Como gerenciar a programação do job de monetização usando a API

As seções a seguir descrevem como gerenciar a programação do job de monetização usando a API:

Para mais informações sobre as APIs descritas nesta seção, consulte Jobs programados na API de referência.

Como configurar acionadores

O programador depende de gatilhos para executar jobs. Um job programado é executado quando os jobs é executado. As propriedades de um gatilho definem a execução do job e definem dessas propriedades, é possível controlar as características da execução do job. Por exemplo, quando um job é executado e com que frequência.

Os dois tipos mais comuns de gatilhos são acionadores cron e acionadores simples e gatilhos de detecção. Um gatilho cron tem uma propriedade cronExpression que especifica uma programação de execução. Um acionador simples não tem uma propriedade cronExpression. você especificar startTime para indicar quando o gatilho vai entrar em vigor; opcionalmente, endTime.

As propriedades do acionador são as seguintes (todos os horários listados estão em UTC):

Propriedade Descrição
cronExpression Expressão cron para criar uma programação de execução para o gatilho, como: "Às 8:00 A.M. de segunda a sexta-feira" ou "À 1h30 na última sexta-feira do mês". Consulte Como criar expressões cron para mais detalhes.

A especificação dessa propriedade define o gatilho como um gatilho cron.

Observação: se cronExpression e startTime/endTime foram especificados, cronExpression tem prioridade.

enabled Sinalização que indica se o gatilho está ativado para execução. O valor pode ser um dos o seguinte:
  • true: O gatilho está ativado para execução.
  • false. O gatilho está desativado. Ele não será executado.
endTime Hora no formato de época em que a programação do acionador não está mais em vigor.
group Tipo de servidor em que o gatilho será executado. Por exemplo, se o gatilho for deve ser executada em um servidor de gerenciamento, o valor deve ser definido como management-server: Se o gatilho deve ser executado em uma mensagem de processamento de dados, o valor precisa ser definido como message-processor.
id Identificação do gatilho.
jobId Identificação do job a ser executado.
name Nome exclusivo usado para identificar o acionador.
priority Prioridade de execução relativa dos acionadores se vários acionadores estiverem programados para execução ao mesmo tempo. Quanto menor o valor, mais alta a prioridade. Por exemplo, se dois gatilhos estão programadas para serem executadas ao mesmo tempo e, se um acionador tiver prioridade 1, e o outro com prioridade 2, o gatilho com prioridade 1 é executado primeiro.

Esta propriedade se aplica somente se vários acionadores tiverem exatamente a mesma execução tempo de resposta.

startTime Aplicável apenas a acionadores simples.

Horário no formato de época em que a programação do acionador entra em vigor.

Observação: se cronExpression e startTime/endTime são especificado, cronExpression tem precedência.

suiteId Sinalizador que especifica se a parte da notificação do nível do sistema ou totalmente gerenciado de notificações. Os valores válidos são DEFAULT ou SYSTEM. você pode especificar um nome exclusivo para o conjunto.
triggerDataMap Chave de bloqueio, custom_lock_key, que impede a execução de vários servidores no mesmo trabalho ao mesmo tempo.

Como criar expressões cron

A expressão cron é uma string que compreende seis ou sete campos separados por um espaço em branco. A representa um conjunto de horários, normalmente como uma programação para executar uma rotina. Cron as expressões especificadas na propriedade cronExpression de um acionador são usadas. para programar a execução desse gatilho.

Uma expressão cron tem o seguinte formato: s m h dm m dw y

Em que:

Campo Descrição Obrigatório Valores permitidos Caracteres especiais permitidos
s Segundos Sim 0-59 , - * /
m Minutos Sim 0-59 , - * /
h Horas Sim 0-23 , - * /
dm Dia do mês Sim 0-31 , - * ? / L O
m Mês Sim 1 a 12 ou JAN-DEZ , - * /
dw Dia da semana Sim 1-7 ou SUN-SAT , - * ? / L #
y Ano Não Vazio ou 1970-2099 , - * /

Os caracteres especiais são definidos da seguinte maneira:

Caractere especial Descrição
* Usado para selecionar todos os valores em um campo. Por exemplo, * no campo minuto significa a cada minuto.
? Usado para especificar algo em um dos dois campos em que o caractere é permitido. mas não com o outro. Por exemplo, se você quiser que o acionador seja executado em um determinado dia do mês (digamos, o dia 10), mas não importa que dia da semana, especifique 10 no dia campo mês e ? no campo de dia da semana.
- Usado para especificar intervalos. Por exemplo, 10-12 no campo de hora significa que as horas 10, 11 e 12.
, Usado para especificar valores adicionais. Por exemplo, MON,WED,FRI no campo de dia da semana significa os dias de segunda, quarta e sexta-feira.
/ Usado para especificar incrementos. Por exemplo, 0/15 no campo de segundos significa 0 de segundos, 15, 30 e 45. E 5/15 no campo de segundos significa os segundos 5, 20, 35 e 50. Você pode também especifique / após o " caractere. Fazer isso equivale a ter 0 antes de /. Especificar 1/3 no campo "Dia do mês" significa executar a cada três dias, a partir do primeiro dia dia do mês.
L Tem um significado diferente nos dois campos em que é permitido. L no dia de mês significa o último dia do mês, ou seja, dia 31 para janeiro ou dia 28 para fevereiro em anos não bissextos. No campo dia da semana, L significa o último dia da semana, isto é, 7 ou SAT. Mas se usado no campo dia da semana após outro valor, significa que o último xxx dia do mês. Por exemplo, 6L significa a última sexta-feira do mês.
W Usado para especificar o dia da semana (segunda a sexta-feira) mais próximo do dia especificado. Por exemplo, se você especificar 15W no campo dia do mês, isso significa o dia da semana mais próximo do 15o dia mês. Portanto, se o dia 15 for um sábado, o gatilho será executado na sexta-feira, dia 14. Se o O dia 15 é um domingo, e o acionador será executado na segunda-feira, dia 16. Se o dia 15 for uma terça-feira, ele será executado na terça-feira, dia 15. No entanto, se você especificar 1W para o dia do mês, e o dia 1 for um sábado, o gatilho será executado na segunda-feira, dia 3, porque não será "pular" acima do limite de dias de um mês. O caractere W só pode ser especificado quando o dia do mês é um único dia, não um intervalo ou uma lista de dias.
# Usado para especificar o nono dia XXX do mês. Por exemplo, o valor 6#3 no dia de campo de semana significa a terceira sexta-feira do mês (dia 6 = sexta-feira e no 3 = a 3a em mês). Outros exemplos: 2#1 = a primeira segunda-feira do mês, 4#5 = a quinta Quarta-feira do mês.

Veja alguns exemplos de expressões cron (todos os horários listados estão em UTC):

Expressão Cron Cronograma de execução
0 0 12 * * ? 12h (meio-dia) todos os dias.
0 15 10 * * ? 2013 10h15 todos os dias durante o ano de 2013.
0 10,44 14 ? 3 QUA 14:10 e às 14h44 todas as quartas-feiras do mês de março.
0 15 10 ? * 6L 2013-2015 10h15 na última sexta-feira de cada mês durante os anos de 2013, 2014 e de 2015.
0 15 10 ? * 6 no 3 10h15 na terceira sexta-feira de cada mês.

Como visualizar jobs programados usando a API

É possível visualizar todos os jobs programados emitindo uma solicitação GET para /triggers?orgid={org_name}:

Exemplo:

$ curl -H "Accept:application/json" -X GET \ "http://localhost:8080/v1/mint/triggers?orgid={org_name}" \ -u email:password

Veja a seguir um exemplo de resposta:

[ {
  "createdDate" : 1457924378176,
  "cronExpression" : "3 0 0 * * ?",
  "enabled" : true,
  "group" : "management-server",
  "id" : "MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
  "jobId" : "MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@management-server",
  "name" : "MINT.RESET_DEVELOPER_RATE_PLAN_COUNTER@@@management-server@@@DEFAULT",
  "priority" : "1",
  "suiteId" : "DEFAULT",
  "triggerDataMap" : {
    "custom_lock_key" : "mint.scheduler.__ORG_ID__.resetdeveloperrateplancounter@@@management"
  },
  "updatedDate" : 1457924378176
}, {
  "createdDate" : 1457924378014,
  "cronExpression" : "",
  "enabled" : true,
  "group" : "management-server",
  "id" : "MINT.ADHOC_NOTIFY@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
  "jobId" : "MINT.ADHOC_NOTIFY@@@management-server",
  "name" : "MINT.ADHOC_NOTIFY@@@management-server@@@DEFAULT",
  "priority" : "4",
  "startTime" : "1372916749000",
  "suiteId" : "DEFAULT",
  "triggerDataMap" : {
    "custom_lock_key" : "mint.scheduler.__ORG_ID__.adhocnotify@@@management"
  },
  "updatedDate" : 1457924378014
}, {
  "createdDate" : 1457924377877,
  "cronExpression" : "0 20 1 * * ?",
  "enabled" : true,
  "group" : "management-server",
  "id" : "MINT.CHARGE_DAILY@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
  "jobId" : "MINT.CHARGE_DAILY@@@management-server",
  "name" : "MINT.CHARGE_DAILY@@@management-server@@@DEFAULT",
  "priority" : "1",
  "suiteId" : "DEFAULT",
  "triggerDataMap" : {
    "custom_lock_key" : "mint.scheduler.__ORG_ID__.chargedaily@@@management"
  },
  "updatedDate" : 1457924377877
},
...
]

Também é possível visualizar um job específico programado emitindo uma solicitação GET para /triggers/{trig_id}, em que {trig_id} é a identificação do job conforme descrito na Visão geral dos jobs programados. Exemplo:

$ curl -X GET \ "http://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT" \ -u email:password

Veja a seguir um exemplo de resposta:

{
    "createdDate" : 1457924377925,
    "cronExpression" : "0 20 2 * * ?",
    "enabled" : true,
    "group" : "management-server",
    "id" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
    "jobId" : "MINT.RENEW_DEV_RATEPLAN@@@management-server",
    "name" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT",
    "priority" : "1",
    "suiteId" : "DEFAULT",
    "triggerDataMap" : {
        "custom_lock_key" : "mint.scheduler.__ORG_ID__.renewydevrateplan@@@management"
    },
    "updatedDate" : 1457924377925
}

Como atualizar jobs programados usando a API

É possível atualizar um job programado alterando as propriedades do acionador. Por exemplo, talvez seja necessário alterar a programação de execução do gatilho.

Para trabalhos de acionamento do cron (ou seja, trabalhos que incluem um valor de expressão cron), só é possível mude os valores de cronExpression e das propriedades ativadas. Outras mudanças são ignorada. Para trabalhos que não especificam um valor de expressão cron, é possível alterar outras propriedades como startTime ou priority.

Para atualizar um job programado, emita uma solicitação PUT para /triggers/{trig_id}, em que {trig_id} é a identificação do gatilho de jobs, conforme descrito na Visão geral dos jobs programados. Ao fazer a atualização, você precisa especificar no no corpo da solicitação as configurações atualizadas e o ID do acionador.

Por exemplo, a solicitação a seguir atualiza a expressão cron para o Novo plano de preços do desenvolvedor Job de renovação para ser executado todos os dias às 5h UTC:

$ curl -H "Content-Type: application/json" -X PUT -d \
 '{
    "cronExpression" : "0 0 5 * * ?",
    "enabled" : true,
    "group" : "management-server", 
    "id" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
    "jobId" : "MINT.RENEW_DEV_RATEPLAN@@@management-server",
    "name" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT",
    "priority" : "1",
    "suiteId" : "DEFAULT",
    "triggerDataMap" : {
        "custom_lock_key" : "mint.scheduler.__ORG_ID__.renewydevrateplan@@@management"
    },
}' \
https://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT
\
-u email:password

Como desativar e reativar um job programado usando a API

Para desativar um job programado, defina o valor da propriedade enabled do gatilho como falsa. Exemplo:

$ curl -H "Content-Type: application/json" -X PUT -d \
 '{
    "cronExpression" : "0 0 5 * * ?",
    "enabled" : false,
    "group" : "management-server",
    "id" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT",
    "jobId" : "MINT.RENEW_DEV_RATEPLAN@@@management-server",
    "name" : "MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT",
    "priority" : "1",
    "suiteId" : "DEFAULT",
    "triggerDataMap" : {
        "custom_lock_key" : "mint.scheduler.__ORG_ID__.renewydevrateplan@@@management"
    },
}' \
https://localhost:8080/v1/mint/triggers/MINT.RENEW_DEV_RATEPLAN@@@management-server@@@DEFAULT@@@management-server@@@DEFAULT
\
-u email:password

Para reativar um job desativado, defina o valor da propriedade enabled do gatilho como verdade.

Próximas etapas

É aconselhável sincronizar periodicamente com a monetização de sua organização e de quaisquer desenvolvedores, aplicativos e produtos que você criou usando os serviços da API Edge. Saiba como em Sincronizar Dados do Apigee Edge com monetização.