[PYTHON] Block Heroku (freie Stufe) Schlaf mit Django

Herokus Server schläft

Wenn Sie mit der kostenlosen Stufe von Heroku 30 Minuten lang nicht auf den Server zugreifen, wird der Server in den Ruhezustand versetzt. Es gibt verschiedene Möglichkeiten, dies zu verhindern.

  1. Laden Sie Heroku auf
  2. Add-On hinzufügen
  3. Greifen Sie regelmäßig mit dem Google Apps-Skript usw. zu.

Dieses Mal werde ich Ihnen zeigen, wie Sie Schlaf auf der Django-Seite verhindern können

Wie es funktioniert

Diesmal besteht die Methode darin, beim Starten des Servers regelmäßig in einem separaten Thread auf Ihren Server zuzugreifen.

Da der Einstiegspunkt der Django-Anwendung "wsgi.py" ist, schreiben Sie den Code in "wsgi.py", damit die periodische Verarbeitung in einem anderen Thread ausgeführt wird. Referenz

Implementierung

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()

Dieser Code greift alle 300 Sekunden (5 Minuten) auf seinen eigenen Server zu. Dadurch wird verhindert, dass der Server in den Ruhezustand wechselt.

Recommended Posts

Block Heroku (freie Stufe) Schlaf mit Django
Frei von der harten Codierung von Funktionen mit SymPy
Internationalisierung mit Django
Django Heroku Deploy 2