Como implementar sistema de fila de tarefas (job queue) Print

  • 0

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:

Tela de LOGIN do cPanel (campos Usuário e Senha + botão Log in)

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:

Painel inicial (home) do cPanel com os grupos de ferramentas (E-mail, Arquivos etc.)

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!


Was this answer helpful?

« Back