Bloquer le sommeil Heroku (niveau gratuit) avec Django

Le serveur d'Heroku dort

Avec l'offre gratuite d'Heroku, si vous n'accédez pas au serveur pendant 30 minutes, le serveur se mettra en veille. Il existe plusieurs moyens d'éviter cela.

  1. Chargez Heroku
  2. Ajouter un module complémentaire
  3. Accédez régulièrement avec le script des applications Google, etc.

Cette fois, je vais vous montrer comment éviter de dormir du côté Django

Comment ça fonctionne

Cette fois, la méthode consiste à accéder régulièrement à votre serveur dans un thread distinct au démarrage du serveur.

Le point d'entrée de l'application Django étant wsgi.py, écrivez le code dans wsgi.py pour que le traitement périodique soit exécuté dans un autre thread. Référence

la mise en oeuvre

wsgi.py


import os
import threading
import requests
import time

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "hoge.settings")

application = get_wsgi_application()

def awake():
    while True:
        try:
            print("Start Awaking")
            requests.get("http://hogefuga.herokuapp.com/")
            print("End")
        except:
            print("error")
        time.sleep(300)

t = threading.Thread(target=awake)
t.start()

Ce code accède à son propre serveur toutes les 300 secondes (5 minutes). Cela empêchera le serveur de dormir.

Recommended Posts

Bloquer le sommeil Heroku (niveau gratuit) avec Django
Libre de codage en dur des fonctions avec SymPy
Internationalisation avec Django
Django Heroku Deploy 2