Skip to content

v1.1.14 - 事务管理和并发控制修复

Choose a tag to compare

@WrBug WrBug released this 16 Jan 03:00
· 205 commits to main since this release

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.kt
    • CopyTradingService.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.kt
  • backend/src/main/kotlin/com/wrbug/polymarketbot/service/copytrading/statistics/CopyOrderTrackingService.kt
  • backend/src/main/kotlin/com/wrbug/polymarketbot/service/copytrading/statistics/OrderStatusUpdateService.kt
  • frontend/src/pages/PositionList.tsx

技术细节

事务管理改进

所有使用 @Transactional 的服务类现在都通过 ApplicationContextAware 获取代理对象,解决了 Spring AOP 自调用问题。这确保了:

  • 事务边界正确生效
  • 数据一致性得到保障
  • 异常回滚机制正常工作

并发控制改进

OrderStatusUpdateService 添加了任务状态跟踪,防止定时任务并发执行,避免了:

  • 数据竞争
  • 重复处理
  • 资源浪费

升级建议

  • 建议在生产环境部署前进行充分测试
  • 重点关注事务相关的功能验证
  • 监控定时任务的执行情况

完整提交列表

  • b90f86b - fix: 修复 @transactional 方法的可见性问题
  • deea59f - fix: 修复 OrderStatusUpdateService 的事务和并发问题
  • ae68a33 - fix: 优化仓位列表分页和统计功能
  • 3e2e97e - fix: 修复 CopyOrderTrackingService 和 CopyTradingService 的 @transactional 自调用问题