现状

跟淘宝或天猫做商品对接的时候,需用到淘宝api提供taobao.picuture.get接口获取淘宝图片空间的商品图片的url,我们在商品同步之前,首先需要批量通过sku去获取所有sku的图片链接,比如一个颜色sku就可能需要去get到如下这么多图片类型

,我们这边业务同事一般都是批量输入sku去get图片链接,假设一次性20个sku获取图片链接 ,每个sku需要get大约15张图片,大概就需要调用15*20 = 300 次get图接口,这样导致每次批量get图片耗费的时间非常多,这样会影响业务同事的体验,浪费没必要的时间,为了减少get图过程中所耗费的时间,有两种思路

1、采用多线程get图

2、天猫支持批量get图片接口

多线程get图

通过实现Callable接口创建get图片线程对象,核心代码如下

 /***
     * 根据13位sku获取后台图片(采用Callable多线程,分批次调用get图片接口,每次调用接口数:11)* @param sku* @return*/public List<Picture> getTaobaoPicturesByTitle(String sku){//创建一个线程池 ExecutorService pool = Executors.newFixedThreadPool(TppConfig.DEFAULT_THREAD_MAX); List<Picture> list = new ArrayList<Picture>();List<String> titles = getFixedTitleList(sku);List<List<String>> titleList = new ArrayList<List<String>>();if(titleList.size() > 0){for(List<String> tList:titleList){List<Future> futures =  new ArrayList<Future>();for(String title:tList){Callable callable = new PictureGetCallable(title,storeCode); //执行任务并获取Future对象 Future future = pool.submit(callable); //从Future对象上获取任务的返回值,并输出到控制台 futures.add(future);}if(futures.size() > 0){for(Future f:futures){try {list.addAll( (List<Picture>)f.get());} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}}}futures.clear();}}//关闭线程池 pool.shutdown(); return list;}/***** 内部类,get图片线程类* @author youqiang.xiong**/public static class PictureGetCallable implements Callable<Object>{private String title;private String storeCode;HashMap<String, String> condMap = new HashMap<String, String>();public List<Picture> list = new ArrayList<Picture>();public PictureGetCallable(String title,String storeCode){this.title = title;this.storeCode = storeCode;}@Overridepublic Object call() throws Exception {try{condMap.clear();condMap.put("title", title);TaobaoPictureListGet taobaoPictureListGet = new TaobaoPictureListGetImpl(storeCode);if(taobaoPictureListGet!=null){List<Picture> pictures = taobaoPictureListGet.getTaobaoPictures(condMap);if(pictures.size() > 0 ){list.addAll(pictures);}}}catch(Exception ex){log.error("PictureGetCallable() title:"+title+" error.", ex);}return list;}}

多线程的应用(批量调用淘宝接口get图片)相关推荐

  1. 调用淘宝接口有每IP数量/时间限制-负载均衡解决

    其实标题不太准确,不过原理是一样. 这里要解决的问题是:调用淘宝接口有每IP数量/时间限制,但是我们的调用量较大,有可能超过这个限制,从而导致可能被淘宝屏蔽一小段时间.为了解决这个问题,我们需要用多个 ...

  2. PYTHON实现批量下载淘宝详情页图片

    1.打开某件宝贝的详情页地址url 例如下图这款windows10鼠标垫宝贝,url地址为下图红色框框里! 注意:目前此代码不支持天猫详情页图片下载.可以关注我后续的文章,也可以自行研究,原来一样.只 ...

  3. 调用淘宝接口查询IP所在地

    #!/usr/bin/python # -*- coding: UTF-8 -*- import requests IP = raw_input("请输入:"); def chec ...

  4. 淘宝接口 TopAPi(转)

    本文转自delphi盒子:http://www.2ccc.com/article.asp?articleid=6121 感谢作者 废话先不说, 先用D2007写一个Demo, 演示一下调用淘宝的接口, ...

  5. 淘宝接口 TopAPi

    演示一下调用淘宝的接口,让大家心里有个数, 很简单,新建一个工程,拖一个IDHttp,Button和Memo到窗体上去 然后在这个Button的OnClick事件中写入如下代码: [delphi] v ...

  6. Delphi版本的淘宝接口(TopAPI)开发

    博文地址: http://blog.csdn.net/delphiteacher/article/details/8168741 Delphi版本淘宝接口控件下载地址(支持D7,D2007,D2010 ...

  7. 【转】淘宝接口API开发 taobao代购系统API接口调用

    此文章于 2017-05-03发布 本次开发接口如下: 淘宝API接口中文名称 api_name 参数 说明 对应官方接口 获得淘宝商品详情 item_get num_iid=39881745164& ...

  8. 淘宝接口API开发-taobao代购系统API接口调用

    本次开发接口如下: 淘宝API接口中文名称 api_name 参数 说明 对应官方接口 获得淘宝商品详情 item_get num_iid=39881745164&is_promotion=1 ...

  9. 淘宝接口API开发 taobao代购系统API接口调用

    本次开发接口如下: 淘宝API接口中文名称 api_name 参数 说明 对应官方接口 获得淘宝商品详情 item_get num_iid=39881745164&is_promotion=1 ...

最新文章

  1. Java数据结构与算法(六) 希尔排序
  2. TP获取服务器mysql版本
  3. NOIP2012开车旅行 【倍增】
  4. Linux 内核将要支持最新龙芯 3A2000/3B2000
  5. Cookie或将被替换!Chrome工程师提议新型HTTP状态管理协议
  6. PS学习笔记2-画笔的应用
  7. 基于IdentityServer的系统对接微信公众号
  8. SqlServer规则
  9. 响应式网站与自适应网站比较
  10. jsf el 表达式_JSF表达式语言– JSF EL
  11. 日报系统、周报系统如何便捷使用?——领导篇
  12. java伪代码生成器_java伪代码怎么写
  13. 安装JDK1.8报错 “当前页面的脚本发生错误”
  14. JavaScript Window窗口对象
  15. 3dsmax动画九、弹跳球动画。
  16. MYSQL 如何得到两个日期间的工作日(不含周六日,节假日)
  17. android 如何实现弹幕,Android简单实现弹幕效果
  18. 长江大学c语言程序设计答案,C语言程序设计卷及答案.doc
  19. 赚流量不赚钱、高退出低留存,水滴的资本故事还能怎样讲?
  20. transformer学习之多头注意力机制

热门文章

  1. 报错 mysql: command not found
  2. 通过NLP技术寻找公司竞品(智能投研)
  3. postgres启动服务器时missing or erroneous pg_hba.conf file
  4. 部署-TarsPHP环境搭建(CentOS 7.8)
  5. 跨国并购捷径,中国企业欲在车联网领域弯道超车
  6. 微信小程序选择视频,获取封面缩略图
  7. 2022-2028全球水壶包装喷码解决方案行业调研及趋势分析报告
  8. ZEMAX | 如何使用ZOS-API创建自定义操作数
  9. 仿麦包包首页table轮换图jQuery
  10. 使用python查看图片数据