Repolode
Hexagon

Hexagon/croner

Biblioteca de cron para TypeScript/JavaScript sem dependências, que agenda funções ou calcula próximas execuções em Node, Deno, Bun e navegadores.

Estrelas
2,611
Forks
75
Issues abertas
7
Último commit
há 4 dias

O que é?

Croner permite que código JavaScript e TypeScript execute funções de acordo com uma agenda cron ou avalie uma expressão cron para listar próximas execuções e verificar se uma data corresponde a um padrão. Ele roda em memória, sem banco de dados nem arquivos de configuração, e funciona em Node.js, Deno, Bun e navegadores.

Além da sintaxe cron padrão, oferece um campo opcional para segundos e outro para ano, além de L (último dia ou dia da semana), W (dia da semana mais próximo), # (enésimo dia da semana do mês) e + (lógica AND entre o dia do mês e o dia da semana). Os jobs podem usar fusos horários específicos, ser pausados, retomados ou interrompidos, e receber um limite máximo de execuções ou horários de início e término.

As proteções em tempo de execução incluem a prevenção de sobreposição, que bloqueia novos disparos enquanto uma tarefa assíncrona anterior ainda estiver em execução, captura de erros configurável e uma opção para desvincular os timers, permitindo que processos Node ou Deno sejam encerrados. As definições de tipos estão incluídas.

Recursos principais

  • 01Agenda funções com expressões cron que incluem campos opcionais para segundos e ano.
  • 02Lista horários de execuções futuras e anteriores e verifica se uma data corresponde a um padrão.
  • 03Oferece suporte a fusos horários, aos modificadores L, W, # e + e à numeração de dias da semana no estilo Quartz.
  • 04Inclui proteção contra sobreposição de tarefas assíncronas e tratamento de erros configurável.
  • 05Não tem dependências e inclui definições de tipos para TypeScript.

Casos de uso

  • Executar jobs periódicos em segundo plano dentro de um servidor Node.js ou Bun, sem um serviço de agendamento separado.
  • Calcular os próximos horários de execução de uma agenda para exibi-los em uma interface.
  • Agendar tarefas em um fuso horário específico para usuários de diferentes regiões.
  • Executar timers no estilo cron em um ambiente Deno ou navegador.

Início rápido

  1. 1

    Instale o croner pelo npm

    npm install croner
  2. 2

    Importe a classe Cron no seu projeto

    import { Cron } from "croner";
  3. 3

    Agende uma função com um padrão cron

    new Cron('*/5 * * * * *', () => { console.log('This will run every fifth second'); });

Antes de usar

  • Como tudo fica na memória, os temporizadores só funcionam enquanto o processo do host estiver ativo.

Tópicos

Perguntas frequentes

O que é croner?
Biblioteca de cron para TypeScript/JavaScript sem dependências, que agenda funções ou calcula próximas execuções em Node, Deno, Bun e navegadores. Croner permite que código JavaScript e TypeScript execute funções de acordo com uma agenda cron ou avalie uma expressão cron para listar próximas execuções e verificar se uma data corresponde a um padrão. Ele roda em memória, sem banco de dados nem arquivos de configuração, e funciona em Node.js, Deno, Bun e navegadores.
croner é gratuito? Qual é a licença?
croner é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
croner ainda é mantido?
Manutenção ativa. O último commit de croner foi em 18 de out. de 2026.
Para que posso usar croner?
Executar jobs periódicos em segundo plano dentro de um servidor Node.js ou Bun, sem um serviço de agendamento separado. Calcular os próximos horários de execução de uma agenda para exibi-los em uma interface. Agendar tarefas em um fuso horário específico para usuários de diferentes regiões. Executar timers no estilo cron em um ambiente Deno ou navegador.
Como instalar croner?
Instale o croner pelo npm: npm install croner Importe a classe Cron no seu projeto: import { Cron } from "croner"; Agende uma função com um padrão cron: new Cron('*/5 * * * * *', () => { console.log('This will run every fifth second'); });
Onde consigo croner?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/Hexagon/croner

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados