Excel有40多万的数据调用第三方接口,单线程调用要3秒钟才能搞定一条数据
简单算一下 需要333小时,要跑10多天才能跑完.
这个时候就写一个main方法 单线程读取 Excel ,多线程去调用第三方接口
随着线程池数量的加多,分析出一个 时间 最少的线程数(我测试是50个线程)
然后申请4台机器,把 Excel 分割为 4份,每份10万的数据
调用的结果存储在mongodb 中, 4台机器 每分钟可以调用 235条数据左右
最后27小时左右完成,领导也能接受这个时间.
最后有朋友讨论,把数据导入db中,然后分批根据数量来多台机器运行,也不是不可以,要这样,我还不如导入redis 的 多个list中,更快速
要说一下,如果不能接受,就需要把调用第三方的服务配置提升,继续压测,达到单台相对较少的时间,再去加机器
最后 这个问题还有一个坑,如果第三方接口,有限制并发数,那可能线程数就不能太大,时间也会更长!
网友评论