O que é cron-express?
cron-express é uma biblioteca PHP leve para criar e gerenciar agendadores de tarefas (tarefas semelhantes ao cron) diretamente no código da sua aplicação. Ela permite definir a periodicidade de execução das tarefas usando uma sintaxe legível por humanos (por exemplo, 'every 10 minutes', 'daily at 14:30'), em vez de expressões cron complexas. A biblioteca é ideal para frameworks Laravel, Symfony e PHP puro.
Para que serve um agendador de tarefas?
No desenvolvimento web, muitas vezes é necessário executar operações em segundo plano: envio de campanhas de e-mail, limpeza de cache, geração de relatórios, sincronização de dados com APIs. Usar o cron do sistema requer acesso ao servidor e edição do crontab. O cron-express resolve esse problema, permitindo gerenciar tarefas programaticamente — todas as configurações são armazenadas em arquivos PHP, o que simplifica o deploy e o versionamento.
Instalação
Instale a biblioteca via Composer:
composer require mtdowling/cron-expressionOu para um agendador mais avançado com sintaxe legível por humanos:
composer require dragonmantank/cron-expressionApós a instalação, inclua o autoloader do Composer:
require 'vendor/autoload.php';Funcionalidades principais
- Intervalos legíveis por humanos: 'every 5 minutes', 'every hour', 'daily at 10:00', 'weekly on Monday'
- Configuração flexível de horário: suporte a fusos horários, dias da semana, meses
- Integração com frameworks: soluções prontas para Laravel (Artisan) e Symfony (Console)
- Segurança: prevenção de execução simultânea da mesma tarefa (overlapping protection)
- Registro de logs: suporte integrado para gravação dos resultados da execução em arquivo ou banco de dados
Exemplo de código em PHP
<?phprequire 'vendor/autoload.php';
use Cron\\CronExpression;
// Criando uma tarefa: executar a cada 30 minutos$cron = new CronExpression('*/30 * * * *');
// Verificando se deve executar agoraif ($cron->isDue(new DateTime())) { echo 'Iniciando tarefa: limpeza de cache'; // Seu código clearCache();}
// Exemplo com sintaxe legível por humanos (requer a biblioteca dragonmantank/cron-expression)$expression = 'every 2 hours';$cron = CronExpression::factory($expression);echo $cron->getNextRunDate()->format('Y-m-d H:i:s'); // 2025-04-01 14:00:00?>Quando usar cron-express?
- Aplicações web: para enviar notificações, atualizar estatísticas
- Serviços de API: sincronização periódica com serviços externos
- Desenvolvimento: testar tarefas cron localmente sem configurar o cron do sistema
- Deploy: armazenar o agendamento no Git junto com o código
A biblioteca é especialmente útil em projetos onde o gerenciamento centralizado de processos em segundo plano é importante. Ela reduz a barreira de entrada para iniciantes e acelera o desenvolvimento para programadores experientes.
Também na biblioteca
Cache em Rust: biblioteca `cached`
Tokens JWT em PHP: biblioteca firebase/php-jwt e guia completo
Trabalhando com Apache Kafka em C++: biblioteca librdkafka e exemplos práticos
Filas de Tarefas em Java: Visão Geral e Implementação com java.util.concurrent