‫-: Dans cette vidéo, nous
‫allons faire une dernière configuration spécifique à Heroku qui
‫consiste à répondre à un soi-disant
‫"signal de terme malade" qu'Heroku émet de temps
‫en temps.
‫Ainsi, un dyno Heroku, et encore une
‫fois, un dyno n'est qu'un nom qu'Heroku utilise pour
‫désigner essentiellement un conteneur dans
‫lequel votre application s'exécute
‫afin que ces dynos redémarrent toutes les 24 heures afin
‫de maintenir votre application dans un état sain.
‫D'accord? Et la façon
‫dont Heroku le fait est d'envoyer le soi-disant
‫"signal de terme malade" à notre application
‫de note, et l'application s'arrêtera alors fondamentalement immédiatement.
‫Très bien? Maintenant, le problème avec
‫ceci est que l'arrêt peut être très brusque.
‫Cela peut donc laisser les demandes en
‫cours de traitement en
‫suspens, ce qui
‫n'est donc pas idéal.
‫Donc, fondamentalement, c'est ce qui se passe également
‫lorsqu'il y a un rejet non géré.
‫Donc, ici, dans notre serveur, point
‫JS, rappelez-vous comment nous arrêtons gracieusement le
‫serveur chaque fois qu'il y avait un
‫rejet non géré. Très bien?
‫Alors maintenant, nous allons
‫faire quelque chose de très similaire lorsque nous recevrons
‫le "signal de fin de maladie". Très bien? Disons donc que traiter
‫le point
‫sur le terme de maladie, et donc fondamentalement,
‫le terme de maladie n'est vraiment qu'un
‫événement qui peut être émis et que notre application
‫reçoit et peut ensuite répondre.
‫Donc exactement comme le rejet non géré. À droite?
‫Maintenant, ici, nous n'avons pas d'erreur,
‫et faisons donc un journal
‫de la console ici
‫ainsi que le terme malade reçu.
‫Arrêt gracieusement.
‫Et ajoutons quelques emoji ici juste
‫pour le faire ressortir dans notre console parmi
‫tous ces journaux que nous avons là-bas.
‫Très bien, et
‫maintenant faisons l'arrêt gracieux, qui consiste
‫essentiellement à fermer le serveur.
‫Cela fermera donc essentiellement le serveur, mais avant cela,
‫traitera toujours toutes les demandes
‫en attente. Et c'est
‫exactement ce que nous voulons, au
‫lieu d'une fin très abrupte de l'application, n'est-ce pas ?
‫Ensuite, une fois cela fait, verrouillons-le sur
‫la console.
‫Donc, journal des
‫points de la console, ajoutons encore
‫une fois un joli emoji ici, processus terminé.
‫D'accord. Et dans ce cas
‫ici, nous n'utilisons pas la sortie du point de
‫processus, car le terme malade lui-même entraînera la fermeture de l'application.
‫Nous n'avons pas besoin de le faire manuellement
‫comme nous l'avons fait ici. Très bien?
‫Donc, fondamentalement, le terme malade est un signal qui
‫est utilisé pour provoquer l'arrêt
‫complet d'un programme. C'est donc une manière
‫très polie de demander à un programme de se terminer. D'accord?
‫Encore une fois, nous devons implémenter cette écoute de
‫cet événement ici, car Heroku
‫toutes les 24 heures
‫fermera notre application en envoyant ce signal,
‫ou cet événement, à notre application.
‫Et puis, nous arrêtons le processus avec élégance,
‫en utilisant server dot close, ce qui
‫permet à toutes les demandes en attente de continuer à
‫être traitées jusqu'à la fin. D'accord?
‫Alors, testons cela maintenant.
‫Et donc ce que nous devons
‫faire en premier est bien sûr de valider toutes
‫ces modifications dans notre référentiel git et
‫vous voyez qu'en ce
‫moment nous avons trois fichiers modifiés.
‫Nous avons donc modifié le serveur dans cette conférence
‫et le contrôleur alt dans l'application point JS
‫dans la dernière. À droite?
‫Alors, ajoutons-les tous à la zone de transit
‫git add all, puis validons réellement ces
‫modifications dans notre référentiel.
‫Alors éditez, Heroku, config.
‫Appelons-le simplement ainsi.
‫Très bien. Et maintenant,
‫rappelez-vous comment nous redéployons fondamentalement l'application.
‫Eh bien, c'est très facile.
‫Branche principale de l'addendum Git push Heroku.
‫D'accord, cela enverra maintenant
‫essentiellement toutes les modifications à cette
‫branche et reconstruira ensuite
‫l'application sur Heroku et, bien sûr, la relancera également.
‫Vous voyez donc qu'il effectue tout
‫ce processus qu'il a effectué lorsque nous avons
‫déployé l'application pour la première fois à chaque
‫fois que nous déployons l'application une autre fois.
‫Et maintenant c'est fait. Et donc, afin de tester
‫ce que nous venons de faire ici, redémarrons en gros
‫manuellement l'application. Et donc
‫cela enverra également le terme malade
‫à l'application et devrait déclencher tout ce qui se passe
‫ici. D'accord ? Commençons donc par
‫jeter un œil à tous nos dynos, c'est donc quelque chose
‫que nous n'avons pas encore fait, c'est donc Heroku PS
‫et donc vous voyez que nous
‫avons ici ce seul dyno web gratuit. D'accord?
‫Qui s'exécute, ou fondamentalement, qui commence
‫en utilisant la commande de démarrage MPM, comme
‫je l'ai mentionné dans l'une des vidéos précédentes.
‫Bon, maintenant ce que nous pouvons
‫faire pour redémarrer, c'est très simplement Heroku PS et redémarrer.
‫Donc ce n'était pas correct je pense.
‫Maintenant, ça devrait l'être, et c'est fait.
‫Alors, jetons maintenant un œil
‫aux journaux qui sont Heroku logs dash dash tail.
‫Très bien, donc et
‫voilà.
‫En venant de notre application, nous voyons le terme de maladie
‫reçu, puis traitons les verrous terminés.
‫Très bien, et vous voyez
‫qu'après cela, démarrez le processus avec la
‫commande NPM start.
‫Très bien, et c'est donc le
‫serveur de note point JS comme nous l'avons
‫spécifié, et maintenant l'application s'exécute sur le port 57 deux six sept.
‫Et rappelez-vous comment j'ai dit plus tôt qu'en
‫gros Heroku exécute son
‫application sur un port aléatoire. Et donc celui-ci est
‫cela. Très bien? Super!
‫Alors sortons de ça, nettoyons ça, et
‫avec ça, nous terminons en
‫fait tous les trucs de configuration Heroku dans notre application.
‫Fantastique. Maintenant, il ne reste plus
‫que deux choses à faire,
‫à savoir implémenter quelque chose appelé CORS, ou Cross
‫Origin Resource Sharing, puis terminer les paiements Stripe à
‫l'aide de webhooks. Alors rappelez-vous comment j'ai promis
‫de mettre en œuvre celui-ci un peu plus tard,
‫et nous le ferons donc au cours des deux prochaines conférences.
‫Très bien? Alors à bientôt dans une seconde.