批量订单(大概是每个用户1W订单)处理的最优方案或思路是什么?
系统的订单是从excel表导入的。每个用户可以提交1、2万的订单,订单提交后,还要根据订单金额扣除用户相应的金额。
还要及时反馈1、2万订单成功多少,失败多少,从用户扣除订单金额,这个过程怎么处理才是最优解呢?
我现在的做法是,提交后。
1、从redis取出所有产品的库存信息。
2、循环处理订单,把0库存的剔除,把有库存产品累计金额。
3、队列把有库存的订单,用队列写mysql(批量插入)
4、扣除用户余额。
实践中发现以上做法不严谨,有时mysql插入失败。还是会扣除累计成功的用户余额。
PS:
整个过程耗时大概是PHP2秒左右,但是有同类型的系统(ASP.NET写的,不是PHP),几乎能做到5、600毫秒能反馈。
请问这个是PHP的问题?做不到这么短时间的响应速度,还是我自己优化不足呢?
我测试过流程时间, 以上流程,1、耗时0.7s 2、耗时1.2s
推荐文章: