Comment empêcher Heroku de se mettre en veille ?

Herokoi 🤔?

Super jeu de mot pour commencer l'article ! Heroku c'est une plateforme qui permet aux développeurs de déployer les applications sans trop se préocuper de la partie hardware. On met notre application dans le cloud et on n'a plus trop besoin de s'occuper des serveurs ou de la maintenance. Heroku propose différents tarifs pour les applications mais quand on est développeur débutant ou qu'on veut simplement faire marcher un side project, la solution gratuite peut nous convenir entièrement. Cependant, l'option gratuite a un inconvénient, l'application se met en veille automatiquement si le serveur ne reçoit aucune requête pendant 30mn. Ce n'est pas forcément dérangeant, mais parfois on peut avoir besoin que l'application tourne en permanence ou alors on ne veut tout simplement pas attendre les 30 ou 40 secondes d'attentes pour que ça se relance. Cas typique : Vous avez un portfolio d'application et vous souhaitez mettre à disposition des recruteurs ou clients votre belle application dévelopée avec Node JS. Je peux vous parier que si ça prend 30 secondes, il n'aura pas la patience de rester à attendre... Pire, s'il n'y connait rien en informatique #recruteur, il pourrait même penser qu'il y a un bug... Ce serait dommage.

Comment l'empêcher de se mettre en veille ?

Comme j'ai dit plus haut, il faut que notre serveur reçoive des requêtes pour continuer de tourner. Un première solution serait de créer un petit programme qui tourne en boucle et qui envoie un ping ou une petite requête GET toutes les 30 minutes. Le problème, c'est qu'on doit avoir une machine qui tourne aussi en permanence pour continuer d'envoyer ces requêtes et cela peut devenir plus contraignant qu'autre chose. Ou alors c'est le moment de sortir le Rasperry Pi qui traine dans le placard.

L'autre idée est donc de se servir de https://cron-job.org/en/ et de suivre les étapes suivantes:

  • Se créer un compte sur le site
  • une fois connecté, il faut cliquer sur "Create Cron Job" dans l'onglet "Cron Jobs"
  • Définir l'URL sur laquelle automatiser la requete, par exemple "https://mon-app.herokuapp.com"
  • Dans la partie "Schedule", faire attention à bien définir tous les jours, tous les mois, dans le menu des heures, sélectionner de 7h à 23h et les minutes, sélectionner 0 et 30.

Capture d’écran 2020-09-23 à 23.51.03

*On choisit de 7h à 23h pour être sûr de ne pas dépasser le quota de la formule gratuite

  • Appuyer sur le bouton "Create Conjob"

La tache est normalement bien paramètrée 💪🏻!

J'espère que cet article vous a plu et surtout qu'il aura été utile à quelqu'un 😉

Ressources

C'est en faisant une recherche sur google que j'ai trouvé cette solution très simple et que je souhaitais partager avec vous. Je vous donne le lien de l'article (en anglais) pour rendre à César ce qui appartient à César : ici.

Retour au blog