Agendador de Tarefas PHP: tarefas semelhantes ao cron sem crond

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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-expression

Esta é 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-scheduler

Funçõ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() ou pcntl_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.

Recommendations