Você sabe como rodar código com computador desligado? Então vem comigo que eu vou te mostrar como fazer isso!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
É muito comum surgir uma dúvida como essa, consigo rodar código com computador desligado? A resposta é sim! E nessa aula eu vou te mostrar como você pode fazer isso.
Vou abordar 2 opções que você tem para rodar o seu código de forma automática, mas com o computador ligado. Depois vamos para a opção que é o que de fato queremos, que é rodar código com computador desligado.
Para isso vamos ter que subir o nosso código em um servidor online, mas fique tranquilo que eu vou te mostrar o passo a passo.
Nós vamos utilizar apenas ferramentas gratuitas, mas a ideia é que você siga o mesmo passo a passo que vamos fazer para que tenha o mesmo resultado.
Depois de fazer uma vez você pode ir fazendo suas modificações, mas antes é interessante que você siga o que vamos propor!
O código que nós vamos utilizar é um código para pegar cotações de moedas de uma API, então você já pode baixar o arquivo (que está disponível para download) para que possamos começar!
Para que o seu código fique rodando 24h por dia e 7 dias por semana é necessário que você faça o deploy no seu código.
A primeira opção é deixar o código rodando no seu computador mesmo, deixando-o ligado direto. Outra opção é utilizar o agendador de tarefas do Windows.
Mas ainda não é isso que queremos, então outra opção é colocar esse código dentro de um servidor (que é um computador que nunca desliga ou na internet).
Para disponibilizar o nosso código online em um servidor nós vamos utilizar o Heroku que é uma ferramenta gratuita.
OBS: Lembrando que para poder utilizar a ferramenta você terá que criar uma conta no site antes de iniciar os procedimentos.
Após logar na sua conta você pode clicar em New > Create New App para poder criar um programa. Em seguida você vai colocar o nome desse app, lembrando que é bom colocar um nome intuitivo.
OBS: O heroku não vai permitir nomes iguais, então dependendo do que estiver fazendo é bom complementar mais o nome para não ter outro App com o mesmo nome do seu.
Assim que criado seu App, vai ser enviado a uma página já com o passo a passo do que precisa para fazer o deploy do seu código.
Veja que precisa começar com o download do Heroku CLI, então basta clicar no link e selecionar o seu sistema operacional.
É possível instalar em macOS, Windows e Linux, então basta escolher o seu sistema operacional e fazer a instalação (procedimento padrão dos programas).
Além de instalar o Heroku CLI é necessário que você instale o Git no seu computador, pois ele é que vai gerenciar o processo de disponibilizar uma versão.
IMPORTANTE: Depois dessas instalações é importante que você reinicie o seu editor de códigos em Python para que ele reconheça o que foi instalado. Pode reiniciar o computador também só para garantir que a instalação foi feita corretamente.
Para esse projeto nós vamos utilizar o PyCharm, então se ainda não tem ou não conhece basta clicar aqui que temos uma publicação de como fazer a instalação dele no seu PC.
Feitas as instalações nós vamos voltar com o passo a passo de instalação do Heroku no próprio site.
O primeiro passo é escrever heroku login no seu terminal. Feito isso você vai ser direcionado a um site para poder fazer o seu login, depois disso pode voltar ao editor de Python.
Para que o código fique disponível no heroku vamos ter que criar 2 arquivos. O primeiro arquivo você vai dar o nome de Procfile, se nenhuma extensão mesmo.
Dentro desse arquivo você vai escrever worker: python main.py. Onde esse main.py é o nome do seu arquivo, lembrando que se ele estiver dentro de outra pasta que não é onde você está com o código terá que colocar o caminho completo do arquivo.
IMPORTANTE: É necessário que agora você teste o código para verificar se ele de fato está funcionando, pois precisamos que ele esteja ok para prosseguir. Lembrando que se ainda não tem a biblioteca requests, basta escrever pip install requests no terminal para instalar.
O outro arquivo que nós vamos ter que criar é o requirements, que é justamente um arquivo que vai informar quais são as bibliotecas que vamos precisar para que o código rode normalmente.
Tem uma forma muito fácil de criar esse arquivo de forma automática, basta escrever o seguinte código no terminal: pip freeze > requirements.txt.
Com isso você vai notar que um arquivo txt será criado com tudo que o seu programa precisa para ser executado.
Agora que temos os dois arquivos podemos iniciar o processo de deploy (ainda seguindo o passo a passo do site).
Dentro do terminal vamos escrever git init para que o projeto seja iniciado. Em seguida vamos utilizar o código heroku git:remote -a scriptpython247.
IMPORTANTE: Aqui onde está escrito scriptpython247 você vai colocar o nome do seu app que colocou no site do heroku e precisa ser o nome do seu app mesmo, caso contrário não vai funcionar.
Agora o seu projeto já foi inicializado, e os próximos comandos serão utilizados sempre que você fizer uma atualização nesse projeto.
Então sempre que fizer uma atualização no projeto, seja hoje, ou qualquer outro dia que precise atualizar você vai fazer o login no heroku e utilizar os 3 comandos abaixo no terminal.
Agora você pode ir ao site do heroku, ir até Resources, clicar no lápis para editar e ligar o worker que nós criamos.
Você vai até notar que o valor é 0, pois estamos utilizando um plano gratuito. Depois basta clicar em Confirm para executar esse worker que vai executar o código e em seguida podemos desligar e confirmar.
Como o nosso código ele tem como resultado apenas um print, como que vamos visualizar isso?
Basta clicar em More > View logs dentro do heroku para que você consiga visualizar o que foi executado.
Agora você vai conseguir visualizar os valores das cotações que tivemos nesse momento, lembrando que os seus valores serão diferentes por conta das variações das moedas.
Perfeito! O código foi executado, mas você provavelmente não vai querer ativar e desativar o worker sempre que quiser rodar seu código não é mesmo?
O heroku possui alguns adicionais (add-ons) que você pode colocar e um deles é o agendador (Advanced Scheduler). Basta pesquisar na barra logo abaixo de Add-ons.
Com isso você vai conseguir visualizar os planos que tem para esse agendador.
A primeira opção é uma versão Trial, ou seja, uma versão gratuita desse agendador, então basta selecioná-la e clicar em Subit Order Form.
Ele vai aparecer dentro dos seus Add-ons e você vai clicar nele para fazer as configurações.
Aqui você pode clicar em Create First Trigger que é para criar o seu primeiro gatilho.
Primeiro você vai colocar o nome dessa sua automação, em seguida vai colocar o comando que será executado, que é o mesmo comando que está no seu worker. Nesse caso será python main.py.
Em seguida vai escolher o horário (pode escolher America/Sao Paulo), o estado já deve estar ativo.
Em tipo nós vamos colocar Recurring (que é para que seu código seja executado mais de uma vez).
Feito isso você pode selecionar o Schedule helper para fazer os agendamentos. Aqui você vai poder escolher se quer todo dia, toda semana, todo mês.
Agora basta clicar em Save que está feito! O agendamento foi concluído! Agora é só aguardar o período que você configurou que o código será executado!
Para o nosso exemplo nós colocamos para o código rodar a cada minuto, então você vai ver que uma execução foi às 21:19 e a outra foi às 21:20.
Pronto! Agora você vai conseguir rodar código com computador desligado com o auxílio desse servidor. Lembrando que pode fazer as alterações de tempo ou alterar as configurações do servidor para se adequar ao seu projeto!
Nessa aula eu te mostrei como rodar código com PC desligado fazendo o deploy dele dentro de um servidor gratuito.
Claro que dependendo das suas aplicações você pode verificar os planos pagos, mas para aplicações mais simples o plano gratuito vai te atender bem!
Agora você já sabe como rodar código em Python com PC desligado para deixar seus códigos rodando conforme o agendamento que fez!
Para acessar outras publicações de Python, clique aqui!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.