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.
Cette fois, je vais vous montrer comment éviter de dormir du côté Django
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
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.