diff --git a/server/__init__.py b/server/__init__.py index c528af5..11c5b23 100644 --- a/server/__init__.py +++ b/server/__init__.py @@ -1,5 +1,6 @@ import datetime as dt import pickledb +from multiprocessing import Value, Manager import logging from contextvars import ContextVar from typing import Optional @@ -46,4 +47,4 @@ WORDS_LIST_FILE = "xkcdpass/static/legac" xkcd_passwd = xp.generate_wordlist(wordfile=WORDS_LIST_FILE, min_length=5, max_length=8) -maintenance_mode = False \ No newline at end of file +maintenance_mode = Value('b', False) \ No newline at end of file diff --git a/server/middlewares/__init__.py b/server/middlewares/__init__.py index eb5d8f9..dc615c1 100644 --- a/server/middlewares/__init__.py +++ b/server/middlewares/__init__.py @@ -5,6 +5,7 @@ from server.middlewares.maintenance_mode import MaintenanceModeMiddleware origins = ["*"] def register_middlewares(app): + app.add_middleware(MaintenanceModeMiddleware) app.add_middleware(LoggerMiddleware) app.add_middleware( CORSMiddleware, @@ -13,4 +14,3 @@ def register_middlewares(app): allow_methods=["*"], allow_headers=["*"], ) - app.add_middleware(MaintenanceModeMiddleware) diff --git a/server/middlewares/maintenance_mode.py b/server/middlewares/maintenance_mode.py index d6c9d9e..6836fb7 100644 --- a/server/middlewares/maintenance_mode.py +++ b/server/middlewares/maintenance_mode.py @@ -26,7 +26,7 @@ HTML_RESPONSE_BODY = """ class MaintenanceModeMiddleware(BaseHTTPMiddleware): async def dispatch(self, request: Request, call_next): - if maintenance_mode: + if maintenance_mode.value: return HTMLResponse( content=HTML_RESPONSE_BODY, status_code=503 diff --git a/server/utils/maintenance_scheduler.py b/server/utils/maintenance_scheduler.py index d01db78..c45c6f7 100644 --- a/server/utils/maintenance_scheduler.py +++ b/server/utils/maintenance_scheduler.py @@ -10,7 +10,7 @@ from loguru import logger def enable_maintenance_mode(): global maintenance_mode - maintenance_mode = True + maintenance_mode.value = True logger.debug("Maintenance mode enabled") send_message("Maintenance mode enabled") @@ -22,7 +22,7 @@ def enable_maintenance_mode(): with suppress(Exception): medium_cache.maintenance() - maintenance_mode = False + maintenance_mode.value = False logger.debug("Maintenance mode disabled") send_message("Maintenance mode disabled")