A biblioteca robfig/cron
Agende tarefas com a sintaxe do cron
A biblioteca robfig/cron é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.
Expressões Cron no Go
A biblioteca robfig/cron permite agendar tarefas com a conhecida sintaxe cron, em vez de escrever cálculos de tempo manualmente. Instale-a com go get github.com/robfig/cron/v3.
import "github.com/robfig/cron/v3"Revisão da sintaxe Cron
Uma expressão cron padrão tem cinco campos:
- minuto (0-59)
- hora (0-23)
- dia do mês (1-31)
- mês (1-12)
- dia da semana (0-6)
Exemplo: 0 9 * * 1-5 = 9:00 AM nos dias úteis.
Criando um agendador
cron.New() retorna um agendador. Você adiciona tarefas e depois o inicia.
c := cron.New()
c.Start()
defer c.Stop()Adicionando uma tarefa
AddFunc registra uma função para ser executada conforme uma programação, retornando um ID de entrada e um erro se a especificação for inválida.
id, err := c.AddFunc("30 * * * *", func() {
fmt.Println("runs at minute 30")
})
if err != nil {
log.Fatal(err)
}
_ = idO campo de segundos
O robfig/cron v3 usa por padrão uma especificação de cinco campos (sem segundos). Para habilitar uma especificação de seis campos com segundos, crie o cron com a opção de segundos.
c := cron.New(cron.WithSeconds())
c.AddFunc("*/5 * * * * *", func() { fmt.Println("every 5s") })Agendamentos predefinidos
Há macros convenientes:
@hourly@daily@weekly@every 1h30m
c.AddFunc("@every 1h30m", func() { fmt.Println("every 90 min") })
c.AddFunc("@daily", func() { fmt.Println("midnight") })Removendo tarefas
Use o EntryID retornado para remover um job dinamicamente.
id, _ := c.AddFunc("@hourly", task)
// later:
c.Remove(id)As tarefas são executadas em rotinas Go
Cada job agendado é executado em sua própria rotina Go. Se um job puder se sobrepor ao próximo acionamento, proteja-o contra a concorrência ou use um invólucro que ignore execuções sobrepostas.
Fusos horários
Por padrão, os agendamentos usam o horário local da máquina. Passe uma localização para torná-los explícitos e evitar surpresas relacionadas ao DST.
loc, _ := time.LoadLocation("America/New_York")
c := cron.New(cron.WithLocation(loc))Analisando sem executar
Você pode validar uma especificação ou calcular a próxima execução com um analisador, o que é excelente para testes e para mostrar aos usuários a próxima execução.
sched, _ := cron.ParseStandard("0 9 * * 1-5")
next := sched.Next(time.Now())
fmt.Println("next run:", next)Executável: calcular a próxima execução do cron (analogia)
robfig/cron é externo; este trecho da biblioteca padrão modela a regra cron mais simples, "a cada minuto no início do minuto", calculando o próximo horário correspondente.
package main
import (
"fmt"
"time"
)
func nextRun(from time.Time) time.Time {
return from.Truncate(time.Minute).Add(time.Minute)
}
func main() {
now := time.Date(2026, 1, 1, 8, 15, 30, 0, time.UTC)
fmt.Println("now:", now.Format("15:04:05"))
fmt.Println("next:", nextRun(now).Format("15:04:05"))
}Verificação rápida
Teste sua compreensão da biblioteca robfig/cron.
Recapitulação
Você aprendeu sobre a biblioteca robfig/cron:
cron.New()+AddFunc(spec, fn)+Start()- Por padrão, a especificação tem 5 campos;
WithSecondsadiciona um campo de segundos - Macros como
@dailye@everysimplificam agendamentos comuns - Use
Remove, localizações eParseStandardpara obter controle e realizar testes
Aprenda Go com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 51
- Aulas
- 203
Perguntas Frequentes
A aula “A biblioteca robfig/cron” é grátis?
Sim — o texto completo de “A biblioteca robfig/cron” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.
O que vou aprender em “A biblioteca robfig/cron”?
Agende tarefas com a sintaxe do cron Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Go Academy?
Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “A biblioteca robfig/cron”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Go Academy?
Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Agendamento baseado em tempo
- A biblioteca robfig/cron
- Tickers para intervalos
- Desligamento normal de tarefas