(办公)访问其他系统接口httpClient,异步访问

访问其他系统接口httpClient,但是都是同步的,同步意味当前线程是阻塞的,只有本次请求完成后才能进行下一次请求;异步意味着所有的请求可以同时塞入缓冲区,不阻塞当前的线程;

httpClient请求,访问其他系统可能无响应,锁死,访问请求上线种种问题,这些问题就像苍蝇嗡嗡嗡的在你耳边,那么解决他可以设置超时时间,但是访问一个接口将近1分钟,这个是不应该的,所以还是要异步请求其他系统的接口,我们可以使用多线程来做,建立一个线程池,只指定10个线程,然后调用方法。(好主意)

下面是举个springmvc的例子:

1.往springmvc里添加线程池

application.xml里添加
 xmlns:task="http://www.springframework.org/schema/task"
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
        <!-- 核心线程数 -->
        <property name="corePoolSize" value="10" />
        <!-- 最大线程数 -->
        <property name="maxPoolSize" value="10" />
        <!-- 队列最大长度 -->
        <property name="queueCapacity" value="500" />
        <!-- 线程池维护线程所允许的空闲时间,默认为60s -->
        <property name="keepAliveSeconds" value="200" />
    </bean>

2.操作:

//自定义线程池:
 @Resource
private TaskExecutor taskExecutor;
try {
      taskExecutor.execute(new Runnable() {
        public void run() {
          //这里编写处理业务代码          //注意方法传递参数的时候,尽量使用基本类型的值。

        }
      });
    } catch (Exception e) {
      e.printStackTrace();
    }

原文地址:https://www.cnblogs.com/historylyt/p/11140019.html

时间: 2024-11-05 18:51:52

(办公)访问其他系统接口httpClient,异步访问的相关文章

使用ab.exe监测100个并发/100次请求情况下同步/异步访问数据库的性能差异

ab.exe介绍 ab.exe是apache server的一个组件,用于监测并发请求,并显示监测数据 具体使用及下载地址请参考:http://www.cnblogs.com/gossip/p/4398784.html 本文的目的 通过webapi接口模拟100个并发请求下,同步和异步访问数据库的性能差异 创建数据库及数据 --创建表结构 CREATE TABLE dbo.[Cars] ( Id INT IDENTITY(1000,1) NOT NULL, Model NVARCHAR(50) 

Httpclient通过FutureRequestExecutionService异步访问

Httpclient的异步访问,是一个比较强大的功能,能够针对比较复杂.有一定并发量的情况下的使用. 能够控制访问的超时.取消等操作.并根据回调,异步获取线程执行的结果,但是在使用异步访问的时候要注意,不要阻塞线程. package test.ffm83.commons.httpClient; import java.io.IOException; importjava.util.concurrent.CancellationException; importjava.util.concurre

短信发送接口被恶意访问的网络攻击事件(二)肉搏战-阻止恶意请求

图形验证码+ip(用户id)+https http://www.cnblogs.com/han-1034683568/p/7040417.html 前言 承接前文<短信发送接口被恶意访问的网络攻击事件(一)紧张的遭遇战险胜>,在解决了短信发送的问题后,长长地舒了口气,也就各忙各的事情去了,本以为应该是个完美的收场,哪知道只是泥泞道路的前一段,收场是收不了了,还是要去应付接下来的烂摊子,因为攻击者并没有停止攻击,虽然恶意请求已经可以被识别并且不会被业务服务器处理,也不会去触发短信发送接口,但是请

共享办公局域网环境下的VPN网络访问权限

最近,本人需要上传业务代码,线上环境是在远端的内网环境,需要vpn连接后才能访问线上服务器10.*.*.*的地址. 个人使用没问题,vpn默认就是自己连 自己用,但是如果账号偏少,而需要在办公室不同电脑上使用的情况又有点多的时候(vpn不支持同一账号多拨),显然几个人争抢一个vpn连接的情况比较恼火,你这边连上vpn 发布代码,他那边又需要连接线上服务器 更改一个脚本变量,,,,  一来二去,vpn一直在被挤掉线. 拓扑环境: 办公室中192.168.1.80的这台电脑不想要修改线上10.*.*

在Ubuntu为Android硬件抽象层(HAL)模块编写JNI方法提供Java访问硬件服务接口(老罗学习笔记4)

在上两篇文章中,我们介绍了如何为Android系统的硬件编写驱动程序,包括如何在Linux内核空间实现内核驱动程序和在用户空间实现硬件抽象层接口.实现这两者的目的是为了向更上一层提供硬件访问接口,即为Android的Application Frameworks层提供硬件服务.我们知道,Android系统的应用程序是用Java语言编写的,而硬件驱动程序是用C语言来实现的,那么,Java接口如何去访问C接口呢?众所周知,Java提供了JNI方法调用,同样,在Android系统中,Java应用程序通过

TNetHttpClient支持异步访问(Delphi 10.1 Berlin,红鱼儿的博客)

Delphi 10.1进一步改进自Delphi 10带来的Http访问控件TNetHttpClient,支持异步访问,同时增加ConnectionTimeout及ResponseTimeout两个超时属性.你也许会问,这有什么?其他的语言早就有了,而我想到的确实别看这些常规的功能增加,他可以跨平台的啊,熟知Delphi跨平台的开发者一说就明白,这是跨win,osx,android,ios的,今年底还要linux.我又说多了,好象劝你也来用delphi似的.我们看一下如何使用异步处理Http请求.

Android与WebView的同步和异步访问机制

大家都知道,通过WebView,我们可以在Android客户端,用Web开发的方式来开发我们的应用. 如果一个应用就是单纯一个WebView,所有的逻辑都只需要在网页上交互的话,那我们其实就只需要通过html和javascript来跟服务器交互就可以了. 但是很多情况下,我们的应用不是单纯一个WebView就可以了,有可能会需要运用到Android本身的应用,比如拍照,就需要调用Android本身的照像机等,要产生震动,在需要运用到手机特性的一些场景下,肯定需要这么一套机制在javascript

Vert.x 异步访问数据库 MySQL

Vert.x提供异步访问数据库的API,数据库操作是一个耗时操作,使用传统的同步模型,容易阻塞线程,导致整体性能下降,因此我们对于数据库操作,需要使用Vert.x提供的异步API. Vert.x提供的API层级非常低,可以说是仅仅在原生JDBC基础上封装了一层异步接口.所有的对数据库操作都需要通过编写SQL来完成,参数的封装和结果的获取都需要手动的来实现,对于习惯使用ORM框架的开发者可能会非常的不习惯. 先来通过一个查询数据库的案例来演示如何使用Vert.x提供的异步API 基本操作1.引入数

用三种不同的方法访问Linux系统上的FTP服务过程详解

今天向大家介绍一下,如何在Linux上配置ftp服务,并且使用三种不同的方式访问Linux系统上的FTP服务. 实验环境:一台windows7系统虚拟机,一台Linux系统虚拟机. 实验目的:搭建FTP文件传输服务,并进行匿名访问.虚拟用户访问和本地用户验证. 匿名访问用户名为ftp或anonymous,提供任意密码(包括空密码)都可以通过服务器认证 安装软件包,关闭防火墙和关闭selinux功能. 在ftp服务中创建一个wen.txt文件 测试(window7) 匿名登录ftp服务 从ftp服