带有大量数据库修改和事务的业务操作,要批量操作怎么实现最好?
我有一个功能,和余额变动相关,保守估计至少要同时修改5张表。
单独做这个功能并不复杂,但是我现在有个批量操作的需求,比如一次性提交100条,那我就得一次性修改5张表*100次,执行最少500次sql,这显然不太科学。
可以把它放到队列里执行,但是消费到这条队列消息可能需要时间,且执行这条队列消息一定会消耗时间,就会出现用户提交请求,也提示成功,但是刷新后这些数据还是显示未处理的情况。
如果提交时sql加in一次性先把这些数据加状态隐藏起来,慢慢等业务执行完,又有点头疼,因为执行可能需要时间,应该收到余额的用户和操作人可能会出现一时半会对不上账的情况。其次如果执行失败再退回去对用户也不太友好,因为之前已经提示他成功了。
有没有老哥有什么优雅的方式完美解决这个问题
推荐文章: