Como Implementar um Sistema de Fila de Tarefas (Job Queue) com a GeHost
Olá, aprendiz! Seja bem-vindo ao seu primeiro passo rumo a um servidor mais inteligente, organizado e eficiente. Hoje, vamos aprender como criar um sistema de fila de tarefas — ou job queue — usando apenas as ferramentas da GeHost. Não se preocupe se você ainda não sabe o que é isso: comigo, tudo fica simples, claro e até divertido.
Imagine que você tem um site onde os usuários enviam formulários, enviam e-mails em massa, ou fazem upload de arquivos grandes. Se tudo for processado na hora, o servidor pode travar. A solução? Delegar tarefas para uma fila. Assim, o sistema processa uma por vez, sem sobrecarga.
Na GeHost, você pode montar esse sistema com ferramentas simples, mesmo sendo leigo. Vamos lá!
Passo 1: Entenda o que é uma Fila de Tarefas
Uma fila de tarefas é como uma lista de pedidos que o sistema vai cumprir em ordem. Por exemplo:
- Enviar e-mail de boas-vindas após cadastro
- Gerar relatório semanal
- Converter vídeos para formato web
Essas tarefas não precisam ser feitas agora. Elas podem esperar na fila. A GeHost te ajuda a criar isso com ferramentas simples.
💡 Dica do Sensei: Você não precisa de programação avançada. Basta saber usar o cPanel e ter um pouco de paciência. Tudo começa aqui.
Passo 2: Acesse o cPanel (seu centro de controle)
Para começar, faça login no seu painel de controle:
Insira suas credenciais e clique em Log in. Pronto! Você está no controle.
Passo 3: Acesse o Gerenciador de Arquivos (File Manager)
Depois de logado, vá até a seção Arquivos e clique em Gerenciador de Arquivos:
Na tela seguinte, selecione a pasta public_html (ou a que for do seu site) e clique em Ir para o diretório.
Passo 4: Crie uma pasta para suas tarefas
Vamos organizar tudo. No Gerenciador de Arquivos, clique em Novo Diretório e crie uma pasta chamada jobs.
- Nome: jobs
- Local: public_html
Essa pasta será o coração da sua fila. Tudo que for processado será armazenado aqui.
Passo 5: Crie um script para enfileirar tarefas
Vamos criar um arquivo PHP que vai "colocar" uma tarefa na fila. No Gerenciador de Arquivos, clique em Novo Arquivo e nomeie como enqueue.php.
Abra o arquivo e insira este código simples:
<?php
// enqueue.php
$job = [
'task' => 'enviar_email_boas_vindas',
'data' => [
'email' => 'usuario@exemplo.com',
'nome' => 'João'
],
'timestamp' => time()
];
$jobFile = __DIR__ . '/jobs/' . time() . '.json';
file_put_contents($jobFile, json_encode($job));
echo "Tarefa adicionada à fila com sucesso!";
?>
Salve o arquivo.
Passo 6: Crie um script para processar a fila
Agora, vamos criar o "processador" da fila. Clique em Novo Arquivo novamente e nomeie como worker.php.
Abra o arquivo e insira este código:
<?php
// worker.php
$jobsDir = __DIR__ . '/jobs';
if (!is_dir($jobsDir)) {
echo "Diretório de jobs não encontrado.";
exit;
}
$files = glob($jobsDir . '/*.json');
if (empty($files)) {
echo "Nenhuma tarefa na fila.";
exit;
}
$jobFile = $files[0]; // Pega a primeira tarefa
$jobData = json_decode(file_get_contents($jobFile), true);
echo "Processando tarefa: " . $jobData['task'] . "\n";
// Simulando processamento
sleep(2);
// Exemplo: enviar e-mail
if ($jobData['task'] === 'enviar_email_boas_vindas') {
echo "E-mail enviado para: " . $jobData['data']['email'] . "\n";
}
// Remove a tarefa processada
unlink($jobFile);
echo "Tarefa concluída e removida da fila.";
?>
Salve o arquivo.
Passo 7: Execute a fila com o Cron (Agendador de Tarefas)
Agora vem a parte mágica: o Cron — uma ferramenta que executa scripts automaticamente.
No cPanel, vá até Agendamento de Tarefas (Cron) (na seção "Tarefas").
Para rodar o worker a cada 1 minuto, configure assim:
- Minuto: *
- Hora: *
- Dia do mês: *
- Mês: *
- Dia da semana: *
- Comando: php /home/SEU_USUARIO/public_html/worker.php
Substitua SEU_USUARIO pelo nome da sua conta (ex: gehost123).
Salve a tarefa.
Passo 8: Teste sua fila
Agora, abra o navegador e acesse:
https://seusite.com/enqueue.php
Se tudo estiver certo, você verá: "Tarefa adicionada à fila com sucesso!"
Em seguida, o worker.php será executado a cada minuto pelo Cron. Ele pegará a tarefa, a processará (simulando o envio de e-mail) e a removerá da fila.
Conclusão: Você é um mestre da fila!
Parabéns, aluno! Hoje você aprendeu a criar um sistema de fila de tarefas com apenas três arquivos e o poder do cPanel. Isso significa que seu site pode agora lidar com tarefas pesadas sem travar — um verdadeiro passo em direção à escalabilidade.
Quer ir além? Pode usar bancos de dados MySQL para armazenar as tarefas, ou integrar com ferramentas externas como RabbitMQ (mas isso é para o próximo nível).
Se tiver dúvidas, lembre-se: a GeHost está aqui com você. E eu, seu Sensei, sempre te espero no próximo guia.
Até a próxima, com paciência e código limpo!