继续优化数据库
This commit is contained in:
41
app.py
41
app.py
@@ -12,7 +12,7 @@ import pytz
|
||||
from lib.db import execute_query
|
||||
from lib.report_generator import generate_daily_report
|
||||
from lib.api import register_blueprints
|
||||
from lib.db_init import init_database_tables
|
||||
from lib.db_init import init_database_tables, optimize_sum_data_indexes
|
||||
from lib.logger import log_info, log_error, log_warning
|
||||
from lib.api.download_api import cleanup_old_temp_zips
|
||||
from lib.api.auth_api import get_current_user
|
||||
@@ -33,6 +33,13 @@ register_blueprints(app)
|
||||
log_info('正在初始化数据库表...', 'app')
|
||||
if init_database_tables():
|
||||
log_info('数据库表初始化成功', 'app')
|
||||
|
||||
# 优化求和数据表索引
|
||||
log_info('正在优化数据库索引...', 'app')
|
||||
if optimize_sum_data_indexes():
|
||||
log_info('数据库索引优化成功', 'app')
|
||||
else:
|
||||
log_warning('数据库索引优化失败,但不影响正常使用', 'app')
|
||||
else:
|
||||
log_error('数据库表初始化失败,请检查数据库连接', 'app')
|
||||
|
||||
@@ -145,12 +152,40 @@ def scheduled_job():
|
||||
log_error(f'定时任务执行失败:{e}', 'scheduler')
|
||||
|
||||
|
||||
# 启动定时任务
|
||||
# ==================== 启动定时任务 ====================
|
||||
scheduler = BackgroundScheduler(timezone='Asia/Shanghai')
|
||||
scheduler.add_job(scheduled_job, 'cron', hour=8, minute=30)
|
||||
scheduler.add_job(cleanup_old_temp_zips, 'interval', hours=1)
|
||||
|
||||
# 添加 Doris 表统计信息定时优化任务(每天凌晨3点执行)
|
||||
def optimize_doris_tables():
|
||||
"""定期优化 Doris 表统计信息"""
|
||||
try:
|
||||
log_info('开始执行 Doris 表统计信息优化...', 'scheduler')
|
||||
from lib.doris_optimize import optimize_doris_table
|
||||
|
||||
tables = [
|
||||
't_daily_report_sum_data',
|
||||
't_daily_report_config',
|
||||
't_daily_report_history',
|
||||
]
|
||||
|
||||
for table in tables:
|
||||
try:
|
||||
optimize_doris_table(table)
|
||||
log_info(f'表 {table} 统计信息优化完成', 'scheduler')
|
||||
except Exception as e:
|
||||
log_warning(f'表 {table} 统计信息优化失败: {e}', 'scheduler')
|
||||
|
||||
log_info('Doris 表统计信息优化完成', 'scheduler')
|
||||
except Exception as e:
|
||||
log_error(f'Doris 表统计信息优化失败: {e}', 'scheduler')
|
||||
|
||||
|
||||
scheduler.add_job(optimize_doris_tables, 'cron', hour=3, minute=0)
|
||||
|
||||
scheduler.start()
|
||||
log_info('定时任务已启动:每天 08:30 执行日报生成,每小时清理临时文件', 'app')
|
||||
log_info('定时任务已启动:每天 08:30 执行日报生成,每小时清理临时文件,每天 03:00 优化 Doris 统计信息', 'app')
|
||||
|
||||
|
||||
# ==================== 启动应用 ====================
|
||||
|
||||
Reference in New Issue
Block a user