Make maintenance mode state value sadfe for multiprocess

This commit is contained in:
ZhymabekRoman 2024-03-21 12:35:38 +05:00
parent 32798fc77f
commit 34d788d8f5
4 changed files with 6 additions and 5 deletions

View file

@ -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
maintenance_mode = Value('b', False)

View file

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

View file

@ -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

View file

@ -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")