Commit Graph

18 Commits

Author SHA1 Message Date
3a551f69b9 系统存在以下关键设计问题导致测试超时:
无限阻塞线程设计:
数据处理器使用 BlockingQueue.take() 方法无限期阻塞线程
缺少超时机制导致线程永远不会退出
生命周期管理不当:
使用 @PostConstruct 启动线程但没有相应的 @PreDestroy 清理机制
缺少应用程序关闭钩子,导致资源无法正确释放
线程池配置不合理:
线程池配置过大(核心10线程,最大100线程)
没有设置优雅关闭参数,导致应用关闭时线程不会终止
测试隔离不充分:
测试运行时仍尝试连接外部资源(数据库、Kafka、数据采集API)
测试配置未完全禁用不必要的服务
解决方案
我们实施了以下改进措施:
优化线程池配置:
减小线程池大小(核心5线程,最大10线程)
添加 setWaitForTasksToCompleteOnShutdown(true) 和 setAwaitTerminationSeconds(5) 配置
优化队列容量,减少内存占用
添加优雅关闭机制:
在主类添加 JVM 关闭钩子,确保资源正确释放
为服务组件添加 @PreDestroy 方法,实现自定义关闭逻辑
引入状态标志(AtomicBoolean running)控制后台线程循环
防止无限阻塞:
修改 MovingObjectRepository,添加非阻塞的 pollUpdate() 方法替代 takeUpdate()
在数据处理循环中添加超时检查,避免无限等待
优化异常处理,防止线程崩溃或 CPU 使用率飙升
完善测试环境配置:
在测试配置中完全禁用数据采集和处理服务
配置 data.collector.disabled=true 和 data.processor.enabled=false
使用 @ActiveProfiles("test") 确保测试使用正确的配置文件
添加错误处理和日志:
包装所有关键操作在 try-catch 块中,防止错误传播
添加详细日志,便于诊断问题
实现错误恢复机制,确保系统稳定性
2025-04-30 12:16:06 +08:00
574dfc8b40 修改了测试框架和测试用例,解决超时问题 2025-04-30 11:55:14 +08:00
a0d3564f84 增加了机场区域服务设计方案和基本功能框架 2025-04-29 16:49:28 +08:00
8357a38156 保存一些文档修改 2025-04-29 14:33:04 +08:00
cb526cc84b 增加一些文档 2025-04-29 14:30:24 +08:00
4a40694354 增加了道路服务的集成测试 2025-04-21 17:25:11 +08:00
55b1909e93 增加了道路网络设置和服务;修改了doc目录结构,增加了设计文档和说明文档;修改了版本号 2025-04-21 15:53:40 +08:00
08d25a6eee 更新 development_log.md 2025-03-31 09:44:15 +00:00
8ff439c85d 更新 change_log.md 2025-03-31 09:22:23 +00:00
ce2d50130e 4 2025-03-31 14:34:02 +08:00
799d748cba Merge remote-tracking branch 'origin/main' 2025-03-31 14:32:19 +08:00
807b9f77db 1.重新优化了数据采集的逻辑(原逻辑存在数据不一致的问题,优化后的方案使用生产者消费者方式)
2.优化了MovingObject的数据结构
3.Websocket配置成功
2025-03-31 14:31:45 +08:00
a58f9fd50e 1.完成数据接入以及数据封装逻辑,但是暂未完成坐标转化逻辑。 2025-03-13 10:39:05 +08:00
cd4c0125a1 1.完成数据接入以及数据封装逻辑,但是暂未完成坐标转化逻辑。 2025-03-13 10:35:48 +08:00
8a27fe5fa9 添加 VERSION.txt 2025-03-06 02:21:08 +00:00
df7a30d061 Update change log
记录版本

Signed-off-by: 2210088963 <2210088963@qq.com>
2025-03-05 06:57:49 +00:00
7c88977428 添加 development_log.md
开发日志

Signed-off-by: 2210088963 <2210088963@qq.com>
2025-03-05 06:55:33 +00:00
4a2f1289f8 Initial commit 2025-03-05 06:43:31 +00:00