v1.1.14 - 事务管理和并发控制修复
Release v1.1.14
版本信息
- 版本号: v1.1.14
- 发布日期: 2026-01-16
- 基础版本: v1.1.13
改动摘要
本次版本主要修复了事务管理和并发控制相关的问题,提升了系统的稳定性和数据一致性。
主要改动
🔧 Bug 修复
1. 修复 @transactional 方法的可见性问题
- 提交: b90f86b
- 文件:
OrderStatusUpdateService.kt - 问题:
@Transactional方法使用了private修饰符,导致 Spring 无法正确代理 - 修复: 将所有
@Transactional方法从private改为public(Kotlin 默认可见性)
2. 修复 OrderStatusUpdateService 的事务和并发问题
- 提交: deea59f
- 文件:
OrderStatusUpdateService.kt - 问题:
@Transactional方法存在自调用问题,事务无法生效- 定时任务可能并发执行,导致数据竞争
- 修复:
- 实现
ApplicationContextAware接口,通过代理对象调用事务方法 - 添加
updateJob跟踪机制,防止定时任务并发执行
- 实现
3. 修复 CopyOrderTrackingService 和 CopyTradingService 的 @transactional 自调用问题
- 提交: 3e2e97e
- 文件:
CopyOrderTrackingService.ktCopyTradingService.kt
- 问题:
processTrade()内部调用processBuyTrade()和processSellTrade()时,事务无法生效updateCopyTradingStatus()调用updateCopyTrading()时,事务无法生效
- 修复:
- 两个服务类都实现
ApplicationContextAware接口 - 通过代理对象调用
@Transactional方法,确保事务正确生效
- 两个服务类都实现
✨ 功能优化
4. 优化仓位列表分页和统计功能
- 提交: ae68a33
- 文件:
PositionList.tsx - 改进:
- 优化分页逻辑和性能
- 改进统计数据的展示和计算
文件变更统计
- 修改文件数: 4
- 新增行数: 213
- 删除行数: 61
修改的文件
backend/src/main/kotlin/com/wrbug/polymarketbot/service/copytrading/configs/CopyTradingService.ktbackend/src/main/kotlin/com/wrbug/polymarketbot/service/copytrading/statistics/CopyOrderTrackingService.ktbackend/src/main/kotlin/com/wrbug/polymarketbot/service/copytrading/statistics/OrderStatusUpdateService.ktfrontend/src/pages/PositionList.tsx
技术细节
事务管理改进
所有使用 @Transactional 的服务类现在都通过 ApplicationContextAware 获取代理对象,解决了 Spring AOP 自调用问题。这确保了:
- 事务边界正确生效
- 数据一致性得到保障
- 异常回滚机制正常工作
并发控制改进
OrderStatusUpdateService 添加了任务状态跟踪,防止定时任务并发执行,避免了:
- 数据竞争
- 重复处理
- 资源浪费
升级建议
- 建议在生产环境部署前进行充分测试
- 重点关注事务相关的功能验证
- 监控定时任务的执行情况
完整提交列表
b90f86b- fix: 修复 @transactional 方法的可见性问题deea59f- fix: 修复 OrderStatusUpdateService 的事务和并发问题ae68a33- fix: 优化仓位列表分页和统计功能3e2e97e- fix: 修复 CopyOrderTrackingService 和 CopyTradingService 的 @transactional 自调用问题