rwadurian/backend/services/mining-service/src
hailin 9deffe2565 fix(mining): resolve transaction timeout by using single transaction for system accounts
Problem:
- Multiple concurrent transactions updating system_mining_accounts caused row lock contention
- 16+ transactions waiting for tuple/transactionid locks led to timeout errors
- This prevented writeMinuteRecords() from executing, leaving mining_records empty

Solution:
- Modified SystemMiningAccountRepository.mine() to accept optional external transaction client
- Created new distributeToSystemAndPending() method that processes all system accounts
  and pending contributions in a single transaction
- Pre-calculate all rewards before transaction, then execute updates sequentially
- Aggregate all pending contribution rewards into single HEADQUARTERS update
- Move Redis accumulation outside transaction to avoid blocking

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 18:53:53 -08:00
..
api fix(mining): return totalDistributed (sum of totalMined) in admin status 2026-01-16 09:27:15 -08:00
application fix(mining): resolve transaction timeout by using single transaction for system accounts 2026-01-16 18:53:53 -08:00
domain fix(mining): remove duplicate burn mechanism from mining-service 2026-01-16 07:31:13 -08:00
infrastructure fix(mining): resolve transaction timeout by using single transaction for system accounts 2026-01-16 18:53:53 -08:00
shared feat(mining-ecosystem): 添加挖矿生态系统完整微服务与前端 2026-01-10 17:45:46 -08:00
app.module.ts fix(mining-*): add parent .env path for shared config 2026-01-15 06:58:56 -08:00
main.ts refactor(api): 升级 mining-service 和 mining-wallet-service API 前缀至 v2 2026-01-11 22:31:06 -08:00