记录下工作中久违的出现的一点成就感,用到一点智商/经验优势的东西:更新计算余额存在线程不安全问题,最后选择最简单的思路–队列,串行处理。
考虑到不能使用内存队列因为重启会丢消息、队列的排序、非单一节点消费需要分布式锁。
最后用mysql实现队列,入队列的动作是状态置为系统处理中,按更新时间排序依次出队列,集成现有工具“job管理”实现单线程消费。
这篇博客分享了如何在工作中解决计算余额的线程不安全问题,采用了一个巧妙的方案——通过MySQL实现队列。考虑到内存队列的重启丢失和分布式环境的需求,博主选择了将状态设为处理中并按更新时间排序的策略,结合现有的job管理工具实现单线程消费,确保了数据的安全性和一致性。
记录下工作中久违的出现的一点成就感,用到一点智商/经验优势的东西:更新计算余额存在线程不安全问题,最后选择最简单的思路–队列,串行处理。
考虑到不能使用内存队列因为重启会丢消息、队列的排序、非单一节点消费需要分布式锁。
最后用mysql实现队列,入队列的动作是状态置为系统处理中,按更新时间排序依次出队列,集成现有工具“job管理”实现单线程消费。
2574
2992

被折叠的 条评论
为什么被折叠?