Cron Job
Um cron job é um comando ou script que roda sozinho em um horário que se repete, por exemplo toda noite às 2h ou toda segunda-feira às 9h. O horário é escrito como uma expressão cron de cinco campos (minuto, hora, dia do mês, mês e dia da semana), e o agendador cron do Linux, do macOS e de outros sistemas Unix confere essa expressão a cada minuto e inicia a tarefa quando o horário bate.
Entendendo Cron Job
O nome vem de Chronos, a personificação grega do tempo. O cron é uma utilidade do Unix que executa comandos programados com base em um arquivo de configuração (crontab) contendo expressões que definem quando cada tarefa deve ser executada. A sintaxe permite especificar minutos, horas, dias, meses e dias da semana.
Uma expressão cron como "0 9 * * 1-5" significa: no minuto 0, hora 9, qualquer dia do mês, qualquer mês, nos dias úteis (segunda a sexta), ou seja, às 9h da manhã durante a semana. Isso permite agendar tarefas recorrentes de forma precisa.
Cron jobs impulsionam automações em segundo plano: backups noturnos de banco de dados, sincronizações horárias de dados, geração diária de relatórios, envio semanal de e-mails resumo e ciclos de cobrança mensais são normalmente implementados como cron jobs. Para assistentes de IA, cron jobs disparam fluxos de trabalho agendados como briefings matinais, resumos de fim de dia e e-mails de revisão semanal.
Ambientes modernos em nuvem evoluíram além do cron do Unix e oferecem serviços gerenciados de agendamento (AWS EventBridge, Google Cloud Scheduler) e agendadores de nível de aplicação (Celery Beat, APScheduler, ARQ). Estes fornecem mais confiabilidade, logs e monitoramento do que o cron puro.
Como ler uma expressão cron: os cinco campos são minuto (0-59), hora (0-23), dia do mês (1-31), mês (1-12) e dia da semana (0-6, em que 0 é domingo). Um asterisco significa qualquer valor, a vírgula separa valores (1,15), o hífen define um intervalo (1-5) e a barra define um passo (*/15 no campo de minutos significa a cada 15 minutos). Exemplos comuns: 0 2 * * * roda todo dia às 2h, */15 * * * * a cada 15 minutos, 0 9 1 * * às 9h do primeiro dia de cada mês e 30 17 * * 5 às sextas às 17h30. Se você restringir ao mesmo tempo o dia do mês e o dia da semana, o cron clássico roda a tarefa quando qualquer um dos dois bate, o que surpreende muita gente.
Como criar um cron job no Linux ou no macOS: rode crontab -e para editar o crontab do seu usuário, adicione uma linha por tarefa com a expressão seguida do comando (por exemplo 0 2 * * * /home/eu/backup.sh), salve e confira com crontab -l. O cron inicia as tarefas com um ambiente mínimo, então use caminhos absolutos, defina PATH ou outras variáveis no topo do arquivo e mande a saída para um arquivo de log; caso contrário, os erros somem ou vão parar em uma caixa de email local que ninguém lê. As tarefas usam o fuso horário da máquina, a menos que você configure outro.
Onde o cron deixa a desejar: ele não tenta de novo uma tarefa que falhou, não roda as tarefas que venceram enquanto a máquina estava desligada (o anacron e os timers do systemd conseguem) e não impede que duas cópias de uma tarefa lenta se sobreponham (envolver o comando com flock resolve). O Kubernetes oferece o recurso CronJob com a mesma sintaxe para contêineres, e agendadores em nuvem como AWS EventBridge Scheduler e Google Cloud Scheduler também aceitam expressões cron. Quando o gatilho é algo que acontece, e não um horário, como um email novo ou uma issue nova, a automação orientada a eventos funciona melhor que um cron job.
Como GAIA usa Cron Job
Os fluxos de trabalho do GAIA podem rodar em um agendamento cron. Diga ao GAIA o horário com suas palavras ("todo dia útil às 8h") ou informe uma expressão cron de cinco campos, e o agendamento é calculado no seu fuso horário. Cada execução entra na fila do ARQ, a fila de tarefas do GAIA baseada em Redis, e os passos do fluxo rodam em segundo plano; o GAIA pode avisar você do resultado. Um agendamento pode disparar no máximo uma vez por hora, então expressões que rodam a cada minuto ou a cada 15 minutos são recusadas. Briefings matinais, resumos de fim de dia e revisões semanais são fluxos agendados típicos.
Conceitos relacionados
Automação de Fluxos de Trabalho
A automação de fluxos de trabalho é o uso da tecnologia para executar automaticamente processos e tarefas repetitivas de negócios, reduzindo o esforço manual e o erro humano.
Automação Orientada a Eventos
Automação orientada a eventos (também chamada de automação baseada em eventos) roda um fluxo de trabalho no momento em que algo acontece, como a chegada de um email novo, a criação de uma issue ou uma linha nova em uma planilha, em vez de em um horário fixo. Cada automação liga um evento gatilho às ações que devem ser feitas, e o sistema onde o evento aconteceu avisa a plataforma de automação, geralmente por um webhook.
Automação de Tarefas
Automação de tarefas é o uso da tecnologia, especialmente da IA, para criar, gerenciar, priorizar e executar automaticamente tarefas repetitivas que normalmente exigiriam trabalho manual.
Webhook
Um webhook é um mecanismo de callback HTTP em que um sistema envia uma requisição HTTP automatizada para uma URL especificada sempre que um evento definido ocorre, permitindo notificações em tempo real e integração entre serviços sem necessidade de polling.
