src.scheduler.dump
Создание регулярного дампа
1"""Создание регулярного дампа""" 2 3import logging 4from datetime import datetime 5from pathlib import Path 6 7from core.config import settings 8from core.err import log_cash_error 9from core.path import PATH 10from db.utils import dump 11 12logger = logging.getLogger("apscheduler") 13logging.getLogger("apscheduler.executors.default").setLevel(logging.WARNING) 14 15 16async def regular_dump(): 17 """Создает регулярный дамп базы данных и управляет старыми дампами. 18 19 Эта функция выполняет создание дампа базы данных с помощью функции `dump`. 20 Затем она проверяет, превышает ли количество дампов максимальное количество, 21 установленное в конфигурации. Если да, то удаляет старые дампы. 22 23 Raises: 24 DumpError: Если произошла ошибка при создании дампа базы данных. 25 """ 26 try: 27 await dump(regular=True) 28 29 folder_path = Path(PATH) / "src" / "db" / "dumps" 30 31 dumps = [ 32 file 33 for file in folder_path.iterdir() 34 if file.is_file() and "regular" in file.name 35 ] 36 37 if len(dumps) > settings.max_dumps: 38 dumps = sorted( 39 dumps, 40 key=lambda file: datetime.strptime( 41 file.name.split("dump")[-1].strip("_.sql"), "%d_%m_%Y-%H_%M" 42 ), 43 ) 44 for _dump in dumps[: len(dumps) - settings.max_dumps]: 45 _dump.unlink() 46 47 except Exception as e: 48 if log_cash_error(e): 49 logger.exception("Ошибка создания регулярного дампа")
logger =
<Logger apscheduler (INFO)>
async def
regular_dump():
17async def regular_dump(): 18 """Создает регулярный дамп базы данных и управляет старыми дампами. 19 20 Эта функция выполняет создание дампа базы данных с помощью функции `dump`. 21 Затем она проверяет, превышает ли количество дампов максимальное количество, 22 установленное в конфигурации. Если да, то удаляет старые дампы. 23 24 Raises: 25 DumpError: Если произошла ошибка при создании дампа базы данных. 26 """ 27 try: 28 await dump(regular=True) 29 30 folder_path = Path(PATH) / "src" / "db" / "dumps" 31 32 dumps = [ 33 file 34 for file in folder_path.iterdir() 35 if file.is_file() and "regular" in file.name 36 ] 37 38 if len(dumps) > settings.max_dumps: 39 dumps = sorted( 40 dumps, 41 key=lambda file: datetime.strptime( 42 file.name.split("dump")[-1].strip("_.sql"), "%d_%m_%Y-%H_%M" 43 ), 44 ) 45 for _dump in dumps[: len(dumps) - settings.max_dumps]: 46 _dump.unlink() 47 48 except Exception as e: 49 if log_cash_error(e): 50 logger.exception("Ошибка создания регулярного дампа")
Создает регулярный дамп базы данных и управляет старыми дампами.
Эта функция выполняет создание дампа базы данных с помощью функции dump
.
Затем она проверяет, превышает ли количество дампов максимальное количество,
установленное в конфигурации. Если да, то удаляет старые дампы.
Raises:
- DumpError: Если произошла ошибка при создании дампа базы данных.