30 lines
954 B
Python
30 lines
954 B
Python
import schedule
|
|
import threading
|
|
import time
|
|
from loguru import logger
|
|
|
|
|
|
def schedule_daily_backup(exporter):
|
|
"""Запускает ежесуточное резервное копирование в отдельном потоке"""
|
|
|
|
def job():
|
|
try:
|
|
exporter.backup()
|
|
logger.info("Daily backup executed successfully")
|
|
except Exception as e:
|
|
logger.error(f"Backup failed: {e}")
|
|
|
|
schedule.every().day.at("03:00").do(job)
|
|
|
|
def run_scheduler():
|
|
while True:
|
|
try:
|
|
schedule.run_pending()
|
|
except Exception as e:
|
|
logger.error(f"Scheduler error: {e}")
|
|
time.sleep(30) # Уменьшил интервал с 60 до 30 секунд для более точного срабатывания
|
|
|
|
thread = threading.Thread(target=run_scheduler, daemon=True)
|
|
thread.start()
|
|
logger.info("Backup scheduler started")
|