‫-: Neste vídeo, faremos uma
‫última configuração específica do Heroku, que é para
‫responder a um chamado "sinal do
‫termo doente" que o Heroku emite de vez
‫em quando.
‫Portanto, um dinamômetro Heroku e, novamente, um
‫dinamômetro é apenas um nome que o Heroku usa
‫para basicamente um contêiner no
‫qual seu aplicativo está
‫em execução, portanto, esses dinamômetros reiniciam a cada 24 horas
‫para manter seu aplicativo em um estado saudável.
‫OK? E a maneira
‫que o Heroku faz isso é enviando o chamado
‫"sinal de doença doente" para nosso aplicativo
‫de notas, e o aplicativo basicamente será encerrado imediatamente.
‫Tudo bem? Agora, o problema com isso
‫é que o desligamento pode ser muito abrupto.
‫Portanto, isso pode deixar as solicitações que estão
‫sendo processadas basicamente suspensas
‫no ar e,
‫portanto, não é o ideal.
‫Então, basicamente, é isso que acontece também
‫quando há uma rejeição não tratada.
‫Portanto, aqui em nosso servidor, ponto
‫JS, lembre-se de como, na verdade, desligamos
‫o servidor normalmente sempre que havia uma
‫rejeição não tratada. Tudo bem?
‫Então agora vamos
‫fazer algo muito semelhante quando recebermos o
‫"sinal do termo doente". Tudo bem? Então, digamos que
‫processo ponto
‫a termo doente, e basicamente, realmente o
‫termo doente é apenas um evento que
‫pode ser emitido e que nosso aplicativo
‫recebe e pode responder.
‫Tão exatamente como a rejeição não tratada. Direito?
‫Agora, aqui não temos um erro,
‫então vamos realmente fazer um
‫log do console
‫aqui também, termo doente recebido.
‫Desligando normalmente.
‫E vamos adicionar alguns emojis
‫aqui apenas para destacá-los em nosso console
‫entre todos esses logs que temos lá.
‫Tudo bem, e agora vamos
‫realmente fazer o desligamento normal, que é
‫basicamente apenas para fechar o servidor.
‫Isso basicamente fechará o servidor, mas antes disso ainda
‫tratará de todas as
‫solicitações pendentes. E isso
‫é exatamente o que a gente
‫quer, ao invés de um finalização muito abrupta da aplicação, certo?
‫Então, uma vez feito isso, vamos bloquear isso
‫no console.
‫Então, o ponto
‫log do console, mais uma vez, vamos
‫adicionar um bom emoji aqui, o processo foi encerrado.
‫OK. E, neste caso aqui,
‫não usamos saída de ponto de processo, porque o
‫próprio termo de doença fará com que o aplicativo seja encerrado.
‫Não precisamos fazer isso manualmente,
‫como fizemos aqui. Tudo bem?
‫Portanto, basicamente, o termo doente é um sinal usado para
‫fazer com que um programa realmente
‫pare de funcionar. Portanto, é uma forma
‫muito educada de pedir que um programa seja encerrado. OK?
‫Então, novamente, precisamos implementar essa escuta deste evento aqui,
‫porque o Heroku a cada
‫24 horas desligará
‫nosso aplicativo enviando este sinal, ou
‫este evento, para nosso aplicativo.
‫E então, fechamos o processo normalmente,
‫usando server dot close, o que
‫permite que todas as solicitações pendentes ainda sejam
‫processadas até o final. OK?
‫Então, vamos testar isso agora.
‫E então o que precisamos
‫fazer primeiro é, claro, comprometer todas essas
‫modificações em nosso repositório git e
‫você verá que
‫agora temos três arquivos modificados.
‫Portanto, modificamos o servidor nesta aula e
‫o controlador alt no app dot JS
‫na última. Direito?
‫Então, vamos adicionar todos eles à área de
‫teste git add all, e então comprometer
‫essas mudanças em nosso repositório.
‫Então edite, Heroku, config.
‫Vamos apenas chamá-lo assim.
‫Tudo bem. E agora
‫lembre-se de como basicamente reimplantamos o aplicativo.
‫Bem, isso é muito fácil.
‫Ramificação mestre de adendo do Git push do Heroku.
‫Ok, agora isso basicamente enviará
‫todas as modificações para este branch e,
‫em seguida, reconstruirá o
‫aplicativo no Heroku e, é claro, o reiniciará também.
‫Portanto, você vê que ele
‫executa todo esse processo que fazia quando implementamos
‫o aplicativo pela primeira vez, tudo de novo,
‫sempre que implementamos o aplicativo em outra ocasião.
‫E agora está feito. E então, para testar o
‫que acabamos de fazer aqui, vamos basicamente reiniciar o
‫aplicativo manualmente. E então
‫isso também vai enviar o termo
‫doente para o app e deve acionar o que quer
‫que aconteça aqui, certo? Vamos começar dando
‫uma olhada em todos os nossos dinamômetros, então isso é algo
‫que ainda não fizemos, então esse é o Heroku
‫PS e você verá que
‫temos aqui um dinamômetro da web gratuito. OK?
‫Que roda, ou basicamente, que
‫começa usando o comando MPM start,
‫como mencionei em um dos vídeos anteriores.
‫Ok, agora o que podemos
‫fazer para reiniciar é muito simplesmente Heroku PS e reiniciar.
‫Então não foi correto, eu acho.
‫Agora deveria ser, e pronto.
‫Então, vamos dar uma olhada agora
‫nos logs, que são os logs do Heroku, traço, cauda.
‫Tudo bem, então e aqui
‫está.
‫Vindo de nosso aplicativo, vemos o recebimento da licença médica e,
‫em seguida, processamos os bloqueios encerrados.
‫Tudo bem, e você vê
‫isso depois disso, iniciando o processo com
‫o comando NPM start.
‫Certo, observe o servidor dot
‫JS exatamente como especificamos, e agora o
‫aplicativo está sendo executado na porta 57 dois seis sete.
‫E então lembre-se de como eu disse antes que
‫basicamente o Heroku executa
‫seu aplicativo em uma porta aleatória. E então este é
‫isso. Tudo bem? Excelente!
‫Então, vamos sair disso, limpar isso e,
‫com isso, encerraremos todas
‫as coisas de configuração do Heroku em nosso aplicativo.
‫Fantástico. Agora só faltam mais
‫duas coisas: implementar algo
‫chamado CORS, ou Cross Origin Resource Sharing,
‫e então também terminar os pagamentos Stripe
‫usando webhooks. Então, lembre-se de
‫como prometi implementar isso um pouco mais
‫tarde, e faremos isso nas próximas duas palestras.
‫Tudo bem? Então, vejo você de volta em um segundo.