sprint/daemons/management/commands/health_check.py
2022-03-28 13:15:26 +03:00

44 lines
1.2 KiB
Python

from time import sleep
from django.core.management.base import BaseCommand
from django.db import connections, OperationalError
from requests import get
from daemons.management.commands.bot import bot
class Command(BaseCommand):
help = "starts health check"
def go(self):
db_conn = connections["default"]
try:
db_conn.cursor()
except OperationalError:
connected = False
else:
connected = True
if not connected:
bot.send_message(84367486, "База сдохла")
return
web_working = True
try:
code = get("http://web:80").status_code
if code != 200:
web_working = False
except:
web_working = False
if not web_working:
bot.send_message(84367486, "Сайт сдох")
return
try:
get("http://storage:5555")
except:
bot.send_message(84367486, "Файловое хранилище сдохло")
def handle(self, *args, **options):
sleep(60 * 5)
while True:
self.go()
sleep(60 * 30)