启用数据库预加载器,清理日志

This commit is contained in:
Windpicker-owo
2025-12-08 17:17:53 +08:00
parent 96ed5a6789
commit a1d60ab026
46 changed files with 484 additions and 886 deletions

View File

@@ -179,40 +179,17 @@ class StatisticOutputTask(AsyncTask):
@staticmethod
async def _yield_control(iteration: int, interval: int = 200) -> None:
"""
<EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
Args:
iteration: <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
interval: ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD>ٴ<EFBFBD><D9B4>л<EFBFBD>һ<EFBFBD><D2BB>
在长时间运行的循环中定期让出控制权,以防止阻塞事件循环
:param iteration: 当前迭代次数
:param interval: 每隔多少次迭代让出一次控制权
"""
if iteration % interval == 0:
await asyncio.sleep(0)
async def run(self):
try:
now = datetime.now()
logger.info("正在收集统计数据(异步)...")
stats = await self._collect_all_statistics(now)
logger.info("统计数据收集完成")
self._statistic_console_output(stats, now)
# 使用新的 HTMLReportGenerator 生成报告
chart_data = await self._collect_chart_data(stats)
deploy_time = datetime.fromtimestamp(float(local_storage.get("deploy_time", now.timestamp()))) # type: ignore
report_generator = HTMLReportGenerator(
name_mapping=self.name_mapping,
stat_period=self.stat_period,
deploy_time=deploy_time,
)
await report_generator.generate_report(stats, chart_data, now, self.record_file_path)
logger.info("统计数据HTML报告输出完成")
except Exception as e:
logger.exception(f"输出统计数据过程中发生异常,错误信息:{e}")
async def run_async_background(self):
"""
备选方案:完全异步后台运行统计输出
完全异步后台运行统计输出
使用此方法可以让统计任务完全非阻塞
"""