Início › Glossário › cron (agendamento)
Glossário

O que é cron (agendamento)?

Cron é um jeito padronizado de agendar automações por tempo (ex.: “todo dia 08:00”, “toda segunda”) usando uma expressão de calendário. Você usa cron quando o gatilho é recorrência, não evento. Funciona bem para rotinas (relatórios, reconciliação, lembretes), mas exige cuidado com timezone, janelas de execução e risco de duplicar tarefas se houver retry.

Cron, em português direto: um relógio que dispara workflow

Em automação, “cron” virou sinônimo de agendamento baseado em horário. A ideia nasceu no Unix: um serviço roda no servidor e, em horários definidos, chama um comando. Ferramentas de automação (n8n, Make, Zapier, orquestradores) copiariam o conceito: em vez de “comando”, elas disparam um workflow.

Na prática, você define uma regra de recorrência. Quando o relógio bate, o sistema cria uma execução. Parece simples — e é — até você depender disso em produção, com múltiplos fusos, atrasos e reprocessamentos.

Como ler uma expressão cron (sem decorar tudo)

A forma mais comum de cron tem 5 campos (minuto, hora, dia do mês, mês, dia da semana). Algumas ferramentas usam 6 ou 7 campos (incluindo segundos e/ou ano). O ponto aqui não é decorar variações, e sim saber reconhecer padrões.

Alguns exemplos típicos (formato de 5 campos):

ObjetivoExemplo de cronO que significa
Todo dia às 08:000 8 * * *Min 0, hora 8, qualquer dia/mês
A cada 15 minutos*/15 * * * *Minutos em passos de 15
Toda segunda às 09:3030 9 * * 1Dia da semana 1 (seg) às 09:30
Dia 1 de cada mês às 07:000 7 1 * *Rodar no dia 1, 07:00

Quando usar cron vs webhook (e quando NÃO usar)

A decisão costuma ser: você quer reagir a um evento (webhook) ou rodar por rotina (cron).

Regra prática: se o dado “nasce” em outro sistema (novo pedido, novo lead, pagamento confirmado) e existe webhook, prefira webhook. Se você precisa “buscar” ou consolidar coisas em horários (relatório diário, checagem de SLA, varredura de planilha), cron é natural.

  • Use cron quando: relatórios diários/semanais, reconciliação bancária, limpeza de dados, checagem de estoque, tarefas de manutenção, sincronizações por janela (batch).
  • Prefira webhook quando: evento em tempo real importa, latência precisa ser baixa, volume é alto e você não quer ficar “varrendo” API.
  • Evite cron quando: a API do sistema origem tem limites rígidos e você tende a fazer polling agressivo; ou quando a duplicidade de execução causa prejuízo (pedido faturado duas vezes, mensagem repetida no WhatsApp).

Armadilhas que derrubam cron em produção (as 5 campeãs)

Cron quebra menos por “expressão errada” e mais por detalhe operacional. As cinco situações abaixo aparecem direto em automações de verdade:

  • Timezone: onde o agendamento está configurado? No fuso do servidor, da conta, do workflow, ou do projeto? Se você não crava isso, 08:00 pode virar 05:00.
  • Horário de verão e ajustes regionais: mesmo quando o Brasil não está em DST, integrações globais podem aplicar regras próprias. Trate “hora local” como requisito, não como suposição.
  • Sobreposição de execuções: se um job de 10 minutos roda “a cada 5”, você cria fila e concorrência sem perceber.
  • Retry + não-idempotência: se falha no meio e reprocessa, você pode duplicar envio de e-mail, cobrança, criação de ticket etc.
  • Janelas de manutenção: quedas curtas (VPS, rede, provedor) podem fazer você “perder” disparos. Algumas ferramentas recuperam, outras não. Se for crítico, modele compensação (rodar varredura de faltantes).

Checklist rápido para cron “confiável” em automações

Se o cron vai mexer com dinheiro, estoque, atendimento ou reputação, eu trato como mini-sistema. Este checklist evita 80% das dores:

  • Defina explicitamente o timezone do agendamento e documente no workflow.
  • Garanta idempotência (por exemplo: chave única por período/cliente/registro) para suportar retries.
  • Controle concorrência: limite execuções simultâneas ou serialize por cliente/conta quando necessário.
  • Monitore atrasos e falhas: alerta para “não rodou até X”, e não só para erro explícito.
  • Crie “modo compensação”: um job que verifica itens pendentes de uma janela anterior e reprocessa de forma segura.

Perguntas frequentes

Cron é a mesma coisa que polling?
Não exatamente. Cron é o agendamento (o “quando”). Polling é a estratégia de buscar mudanças consultando uma API periodicamente (o “como”). Muita automação usa cron para disparar um polling, mas você também pode usar cron para tarefas que não são polling, como gerar relatórios internos.
Qual a diferença entre cron de 5 campos e de 6 campos?
O mais comum (5 campos) não tem segundos. Algumas ferramentas adicionam um campo de segundos no início (6 campos), permitindo agendar com precisão maior (ex.: a cada 10 segundos). O risco é você copiar um cron de um lugar para outro e ele ser interpretado “deslocado” (o que era minuto vira segundo).
Se meu cron roda todo dia, como evito enviar a mesma mensagem duas vezes?
Use idempotência: antes de enviar, registre que aquele envio do “dia X para o cliente Y” já aconteceu (em banco/planilha/CRM), e faça o workflow checar esse registro. Assim, mesmo com retry ou execução duplicada, a ação final não se repete.
Cron serve para automação em tempo real?
Raramente. Dá para simular “quase real-time” com cron a cada 1 minuto, mas isso costuma aumentar custo, bater limites de API e ainda assim perde para webhook em latência e confiabilidade. Para tempo real, prefira evento/webhook; deixe cron para rotinas e compensações.

Termos relacionados

← Ver glossário completo