如何利用线程池解决调用第三接口出现 429 too many requests问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何利用线程池解决调用第三接口出现 429 too many requests问题?相关的知识,希望对你有一定的参考价值。

参考技术A package org.zcm.run;
public class MyRequestThread implements Runnable
//构造函数,传入请求路径或者参数,只要满足你的请求条件就行
private String param;
public MyRequestThread(String p)
param = p;


public void run()
String returnstr = getResult(param);//调用外部接口得到返回值,这里可能耗时(比如10秒);
updateDate(returnstr);//根据返回值更新数据库的数据

public String getResult(String param)
//这里写请求的方法,用connect或者client都可以
//这里如果请求比较复杂,或者要求比较严谨的话,建议用httpclient
String req = new String();
return req;

//这个方法要怎么实现你懂的
private void updateDate(String returnstr)
// TODO Auto-generated method stub




大概就是这样了。

然后循环调用
为了线程安全,可以用一些线程池来管理。
public class ListOperate

public static void main(String[] args)
//建立线程池
ExecutorService pool = Executors.newSingleThreadExecutor();
//测试数据
List params = new ArrayList();
params.add("1");
params.add("2");

for(String p:params)
Thread reqThread = new Thread(new MyRequestThread(p));
pool.execute(reqThread);

pool.shutdown();



还有别的线程池,用法查查就有了

以上是关于如何利用线程池解决调用第三接口出现 429 too many requests问题?的主要内容,如果未能解决你的问题,请参考以下文章

elastic 线程池设置解决logstash-429

172SpringBoot2的一个利用CountDownLatch和线程池优化查询接口执行效率的例子

172SpringBoot2的一个利用CountDownLatch和线程池优化查询接口执行效率的例子

生产环境出现的几次线程池被占满的问题分析

wordpress 429 Too Many Requests,提供wordpress最新版免费下载

Java线程池入门了解