Skip to main content

Configuração

Defina schedules de cron diretamente no config da sua função. Nenhuma configuração externa é necessária.
index.ts

Testes locais

Inicie o servidor com jelou functions dev. Você pode enviar uma requisição HTTP para a função, mas o guard isCron a rejeitará porque não é um trigger de cron real:
Não é possível simular um trigger de cron real via curl — a plataforma injeta ctx.isCron e a assinatura criptográfica automaticamente. Para testar a lógica de cron, use createMockContext({ isCron: true }) nos seus testes.

Sintaxe

Cada schedule tem dois campos:

Formato da expressão

Exemplos comuns

Fusos horários

Use qualquer zona IANA válida:

Guard isCron

Sua função pode receber tanto requisições HTTP quanto triggers de cron. Use ctx.isCron para diferenciá-los:
Sem o guard isCron, qualquer requisição HTTP para sua função executará a lógica de cron. Sempre inclua essa verificação.

Como funciona

  1. Você define os schedules em config.cron
  2. Quando você executa jelou functions deploy, a plataforma lê sua configuração e cria os schedules
  3. Quando um schedule dispara, sua função recebe uma requisição com ctx.isCron === true e ctx.trigger.cron com a expressão que a acionou
  4. A verificação de assinatura criptográfica impede invocações não autorizadas

Limites

  • Máximo de 10 schedules de cron por função
  • Exceder esse limite gera um erro em tempo de definição

Gerenciamento

Os schedules são declarativos — são definidos no código e sincronizados a cada deploy. Para modificar um schedule, altere config.cron no seu código e faça o redeploy. Para visualizar os schedules ativos:

Cron multi-tool

Quando você usa app(), cada ferramenta pode ter seus próprios schedules de cron independentes. As requisições de cron são enviadas para a rota específica de cada ferramenta.
O limite de 10 schedules de cron é agregado entre todas as ferramentas de um app(). Se uma ferramenta usar 6 schedules, as demais ferramentas só poderão usar 4 no total.

Problemas comuns

Os schedules de cron são sincronizados no deploy. Se você alterou a expressão cron, precisa fazer o redeploy:
Verifique se o schedule está ativo:
Se a coluna Enabled mostrar no, verifique se a expressão cron é válida.
Consulte o guia completo de multi-tool para mais detalhes sobre app().