Por que o Bot do Discord Fica Offline Após 12 Horas em Planos Gratuitos de Hospedagem
🔍 WiseChecker

Por que o Bot do Discord Fica Offline Após 12 Horas em Planos Gratuitos de Hospedagem

Muitos desenvolvedores de bots do Discord em planos gratuitos de hospedagem percebem que seus bots ficam offline após exatamente 12 horas. Isso acontece porque a maioria dos provedores gratuitos impõe um tempo limite de sessão para economizar recursos. O processo do bot é encerrado e o bot aparece offline no Discord até que o serviço de hospedagem decida reiniciá-lo. Este artigo explica o motivo técnico por trás da desconexão de 12 horas, como identificá-la e o que você pode fazer para manter seu bot online por mais tempo.

Principais Conclusões: Bot do Discord Offline em Hospedagem Gratuita

  • Tempo limite de sessão em hospedagem gratuita: Provedores como Replit e Heroku interrompem processos após 12 horas de inatividade para economizar recursos.
  • Serviço de monitoramento de uptime: Ferramentas como UptimeRobot ou Kaffeine fazem ping no seu bot a cada 5 minutos para evitar o tempo limite de inatividade.
  • Hospedagem paga ou auto-hospedagem: Migrar para um VPS pago ou executar o bot em um Raspberry Pi elimina completamente o limite de 12 horas.

ADVERTISEMENT

Por que os Planos Gratuitos de Hospedagem Desconectam Bots Após 12 Horas

Plataformas de hospedagem gratuita como Replit, Heroku, Glitch e PythonAnywhere são projetadas para desenvolvimento e testes. Elas não são destinadas a cargas de trabalho de produção 24/7. Para manter os custos baixos, esses provedores param automaticamente qualquer processo que não receba uma requisição web ou interação do usuário por um período definido. Para a maioria dos planos gratuitos, esse período é de 12 horas.

Quando o host interrompe o processo do bot, o Discord detecta a queda da conexão WebSocket. O Discord trata isso como o bot ficando offline. O bot não se reconecta automaticamente a menos que o provedor de hospedagem o reinicie, o que pode não acontecer até a próxima requisição do usuário ou um despertar programado.

Alguns provedores, como Heroku, também colocam aplicativos gratuitos para dormir após 30 minutos de inatividade. No entanto, bots que mantêm uma conexão WebSocket constante são considerados inativos se não lidarem com requisições HTTP recebidas. Essa distinção é a causa raiz do problema de offline de 12 horas.

Como Funciona o Tempo Limite de Inatividade

O tempo limite de inatividade é imposto pelo gerenciador de processos da plataforma de hospedagem. Ele verifica a última vez que o processo do bot enviou ou recebeu dados. Se nenhum dado passar durante a duração do tempo limite, o processo recebe um sinal SIGTERM. O bot é desligado sem aviso. A plataforma então marca o aplicativo como dormindo. O bot permanece offline até que uma nova requisição HTTP acione uma reinicialização.

Por que Especificamente 12 Horas

O limite de 12 horas é um padrão comum entre os planos gratuitos. Ele equilibra o uso de recursos com as expectativas do usuário. Uma sessão de 12 horas permite que desenvolvedores testem bots durante um dia de trabalho sem reinicializações constantes, mas impede que bots de longa duração consumam recursos gratuitos durante a noite.

Passos para Manter seu Bot do Discord Online Além de 12 Horas

Você tem três opções principais para evitar a desconexão de 12 horas. Cada método funciona de forma diferente, e a melhor escolha depende do seu orçamento e conforto técnico.

Método 1: Usar um Serviço de Monitoramento de Uptime

Serviços de monitoramento de uptime enviam requisições HTTP periódicas para o endpoint do servidor web do seu bot. Isso engana a plataforma de hospedagem gratuita, fazendo-a pensar que o bot está ativo. O bot permanece acordado porque recebe uma requisição a cada poucos minutos.

  1. Adicione um servidor web simples ao seu bot
    Se o seu bot já não executa um servidor HTTP, adicione um. Em Python com discord.py, use Flask ou FastAPI. Em Node.js com discord.js, use Express. O servidor só precisa responder a uma requisição GET com um código de status 200.
  2. Implante o bot no seu provedor de hospedagem gratuita
    Envie seu código e inicie o bot normalmente. Confirme que o bot aparece online no seu servidor do Discord.
  3. Cadastre-se em um serviço gratuito de monitoramento de uptime
    Serviços como UptimeRobot (plano gratuito: 5 monitores), Kaffeine (para Heroku) ou Better Uptime oferecem planos gratuitos. Crie uma conta e adicione um novo monitor.
  4. Configure o monitor para fazer ping na URL do seu bot
    Insira a URL completa do endpoint do servidor web do seu bot (por exemplo, https://seu-bot.herokuapp.com/). Defina o intervalo de verificação para 5 minutos. Salve o monitor.
  5. Verifique se o bot permanece online
    Aguarde 12 horas e verifique se o bot ainda está online. O monitor enviará um ping a cada 5 minutos, reiniciando o temporizador de inatividade a cada vez.

Método 2: Atualizar para um Plano de Hospedagem Pago

Planos pagos dos mesmos provedores removem completamente o tempo limite de inatividade. O Heroku Hobby (US$ 7 por mês) mantém os aplicativos acordados. O Replit Hacker (US$ 7 por mês) permite repls sempre ativos. Contas pagas do PythonAnywhere não têm tempo limite de suspensão. Este é o método mais confiável para bots de produção.

  1. Escolha um plano pago que se encaixe no seu orçamento
    Compare preços e recursos. Heroku Hobby é popular para bots pequenos. Replit Hacker oferece sempre ativo para um repl.
  2. Atualize sua conta
    Vá para a seção de faturamento do seu provedor de hospedagem e selecione o plano pago. Insira os detalhes de pagamento.
  3. Ative a opção sempre ativo ou sem suspensão
    Para Heroku, nenhuma configuração extra é necessária. Para Replit, ative o botão sempre ativo nas configurações do repl. Para PythonAnywhere, a opção sempre ativo está nas configurações do aplicativo web.
  4. Reinicie o bot
    Pare e inicie o processo do bot. Confirme que ele permanece online por mais de 12 horas.

Método 3: Auto-hospedar em um Raspberry Pi ou Computador Antigo

A auto-hospedagem oferece controle total. Um Raspberry Pi 4 funcionando 24/7 custa cerca de US$ 5 por ano em eletricidade. Você pode executar o bot usando um gerenciador de processos como PM2 ou systemd que o reinicia automaticamente se ele falhar.

  1. Instale o software necessário no dispositivo
    Configure Python ou Node.js. Instale o Git para clonar o repositório do seu bot.
  2. Clone o código do seu bot para o dispositivo
    Use git clone ou copie os arquivos manualmente. Instale as dependências com pip ou npm.
  3. Configure um gerenciador de processos
    Instale o PM2 para Node.js ou use systemd para Python. Crie uma configuração que inicie o bot na inicialização e o reinicie se ele parar.
  4. Teste se o bot funciona além de 12 horas
    Deixe o dispositivo ligado e conectado à internet. Verifique o status do bot após 12 horas.

ADVERTISEMENT

Se o Seu Bot Ainda Ficar Offline Após Essas Correções

Bot Fica Offline Após 24 Horas em Vez de 12

Alguns provedores de hospedagem têm um tempo limite de inatividade mais longo. Por exemplo, o Glitch coloca aplicativos para dormir após 5 dias de inatividade. No entanto, seu plano gratuito também limita horas de CPU por mês. Se o seu bot usar muitas horas de CPU, ele será limitado e pode parecer offline. Verifique seu painel de uso.

Bot Fica Offline Aleatoriamente, Não Exatamente às 12 Horas

Isso geralmente indica uma falha causada por uma exceção não tratada ou vazamento de memória. Verifique os logs do bot. Procure por mensagens de erro. Use blocos try/except para capturar erros de forma elegante. Adicione um manipulador de falhas que registre o erro e reinicie o bot.

Monitor de Uptime Mostra Bot Online, Mas o Discord Mostra Offline

Isso acontece quando a conexão WebSocket cai, mas o servidor HTTP continua em execução. O monitor de uptime verifica apenas o endpoint HTTP, não a conexão com o Discord. Adicione um endpoint de verificação de saúde que confirme se o bot está conectado ao Discord. Se o bot não estiver conectado, reinicie o cliente WebSocket.

Comparação de Planos Gratuitos de Hospedagem para Bots do Discord

Recurso Replit Gratuito Heroku Gratuito
Tempo limite de inatividade 12 horas 30 minutos a 12 horas
Solução alternativa necessária Monitor de uptime ou plano pago sempre ativo Monitor de uptime ou plano pago
Custo para remover o tempo limite US$ 7/mês (plano Hacker) US$ 7/mês (plano Hobby)
Limites de CPU CPU compartilhada, limitada após uso intenso 550 horas/mês gratuitas
Melhor para Bots pequenos com baixo tráfego Bots que precisam de um servidor web

O problema de offline de 12 horas em planos gratuitos de hospedagem é causado por tempos limite de inatividade impostos pelos provedores para economizar recursos. Usar um monitor de uptime, atualizar para um plano pago ou auto-hospedar são as três maneiras confiáveis de manter seu bot online. Para bots de produção, um plano pago ou auto-hospedagem é recomendado porque monitores de uptime podem falhar se o provedor de hospedagem mudar sua política. Comece adicionando um monitor de uptime hoje para ver se resolve o problema antes de investir em um plano pago.

ADVERTISEMENT