批量接口多线程并发执行

开发中可能会有这样的场景,一个功能需要同时完成不相关的多个操作,最后针对多个操作结果统一处理。比如一个查询功能内部需要同时查询A、B、C、D四个接口,汇总所有接口查询内容后返回,一般来说可以逐个查询汇总即可。

现在问题来了,如接口超时时间限制为3秒,且A、B、C、D四个接口每个接口RT=1,每一个接口都有RT消耗,则同时完成四个接口查询并合并返回的时间必然大于4秒,导致总查询功能接口超时。一般大家会想到使用Future,即希望通过多线程并发执行解决该问题。查询执行开始,启动四个线程同时执行A、B、C、D四个接口查询,最后合并多个线程查询结果即可。开发过程中一般结合线程池配合,以保证更好的线程管理。

简单示例如下<仅供参考>:

1、执行任务线程

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;

/**
 * 服务提供描述
 */
public class ServiceInvoker implements Callable<List<InsurePolicy>> {

    private InsureQueryService insureQueryService;//接口
    
    private String userId;//参数

    private String desc;//接口描述,方便接口异常统计
    
    publi
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值