O que é um Agendador de Tarefas PHP?
O Agendador de Tarefas (Job Scheduler) é uma biblioteca para PHP que permite executar tarefas periódicas (tarefas cron) diretamente do código da aplicação, sem depender do crond do sistema. É especialmente útil em hospedagens compartilhadas, onde o acesso ao crontab é limitado, ou em ambientes conteinerizados (Docker).
Para que serve um agendador?
- Autonomia — todas as regras de periodicidade são armazenadas no código PHP, e não em configurações do sistema.
- Flexibilidade — é possível alterar dinamicamente a programação, pausar tarefas e registrar a execução.
- Integração — integra-se facilmente com frameworks (Laravel, Symfony) e ORMs.
Instalação
Instale via Composer:
composer require dragonmantank/cron-expressionEsta é a biblioteca básica para trabalhar com expressões cron. Para um agendador completo, geralmente usa-se peppeocchi/php-cron-scheduler:
composer require peppeocchi/php-cron-schedulerFunções principais
- Análise de expressões cron — verifica se o horário atual corresponde ao padrão (
* * * * *). - Multitarefa — executa várias tarefas em um único processo.
- Paralelismo — através de
exec()oupcntl_fork(). - Registro de logs — saída stdout/stderr para um arquivo.
- Tratamento de erros — novas tentativas, notificações.
Exemplo de código
<?phprequire 'vendor/autoload.php';
use GO\\Scheduler;
$scheduler = new Scheduler();
// Tarefa: a cada minuto$scheduler->call(function() { echo "Executando em " . date('Y-m-d H:i:s') . "";})->everyMinute();
// Tarefa: a cada hora, aos 30 minutos$scheduler->call('cleanup_logs')->at('30 * * * *');
// Tarefa: em dias úteis às 9:00$scheduler->exec('php artisan report:generate')->at('0 9 * * 1-5');
// Executa todas as tarefas prontas$scheduler->run();Quando usar
O Agendador de Tarefas PHP é ideal para:
- envio de campanhas de e-mail agendadas;
- limpeza de dados obsoletos (logs, sessões);
- geração de relatórios em horários de baixo pico;
- sincronização com APIs externas (uma vez por hora);
- atualização de cache (a cada 5 minutos).
Não substitua o cron do sistema para operações críticas (backup de BD, atualização de certificados) — use-o como uma camada adicional para a lógica de negócios.
Também na biblioteca
Prophecy PHP: guia completo com exemplos práticos
Trabalho com XML em PHP: guia completo para análise e criação de documentos XML
Bogus para C# (.NET): guia completo com exemplos
Trabalhando com CSV em Rust: biblioteca csv e exemplos práticos
Geolocalização e Mapas em PHP: Bibliotecas, API e Exemplos de Código