作者:手机用户2502932551 | 来源:互联网 | 2023-08-28 14:54
现在公司要对公司的50多万个手机用户的订单做两个操作1、查出每个用户的所有贷款订单,然后做一些比较复杂的筛选,得到筛选结果2、对筛选出来的所有订单,挨个发送和订单相关的文案短信给
现在公司要对公司的50多万个手机用户的订单做两个操作
1、查出每个用户的所有贷款订单,然后做一些比较复杂的筛选,得到筛选结果
2、对筛选出来的所有订单,挨个发送和订单相关的文案短信给用户
我目前的做法是:
1、我直接查出所有用户的订单 然后循环查询出每个人的所有订单并筛选符合发送短信要求的订单出来 这样循环查库肯定不太现实,所以我想着要不直接先从库中直接获取50多万个用户的id 然后循环扔进队列服务里 然后启动消费者,消费者这边每次拿一个id,然后查出符合要求的订单并准备好文案
2、然后把这些符合要求的订单号和文案再循环扔到另外一个队列中,这个队列对应的消费者在每次接收到一条消息后就调用短信接口
以上做法相当于只有初次查询出了所有id 以后的流程都是队列和消费者一条数据一条数据的处理各个阶段的流程
问题是
第一步我把50万个id循环扔进队列然后由消费者一个个的去查库然后处理最终找到符合要求的订单 这个过程都是在一个系统中的 而且消费者处理也会很快 所以我感觉有点像直接使用循环去遍历50万个id 然后在每个循环中去查库再做很多操作的 这样循环查询貌似太低效了吧
还是说队列在这里能起到缓冲作用?????感觉消费者处理也很快的
第二步我用队列是因为要调用短信服务 一下子发很多数据给短信接口可能压力大 所以才用队列一条条放过去的 并且发送失败了还可以重试
但第一步我着实不知道那里用队列和直接使用循环有差别么??
往朋友们提点意见