web/server/utils/maintenance_scheduler.py
2024-03-27 21:49:52 +05:00

39 lines
1 KiB
Python

from contextlib import suppress
from datetime import datetime
from server import maintenance_mode
from server.utils.notify import send_message
from medium_parser import cache as medium_cache
from time import sleep
from loguru import logger
def enable_maintenance_mode():
global maintenance_mode
maintenance_mode.value = True
logger.debug("Maintenance mode enabled")
send_message("Maintenance mode enabled")
now = datetime.now()
logger.debug(f"Current time: {now}")
send_message(f"Current time: {now}")
with suppress(Exception):
medium_cache.maintenance()
maintenance_mode.value = False
logger.debug("Maintenance mode disabled")
send_message("Maintenance mode disabled")
def do_maintenance(sleep_time: int = 60 * 60):
while True:
try:
enable_maintenance_mode()
except Exception as e:
logger.error(f"Error enabling maintenance mode: {e}")
send_message(f"Error enabling maintenance mode: {e}")
finally:
sleep(sleep_time)