精华内容
下载资源
问答
  • java判断方法超时

    2021-03-04 01:53:11
    针对以上问题,我们都想在程序中给某方法添加超时判断;运行程序等待该方法多长时间,超过则另作处理。下面是写的一段代码,大致可以实现该功能:publicstaticvoidmain(String[]args){Threadt=null;try{FutureT...

    工作中经常会遇到如下问题:

    程序中某方法挺耗时,但想超过XX数值则按失败算;

    程序中需要调用外部接口,要考虑外部接口不可用,或卡死问题。

    针对以上问题,我们都想在程序中给某方法添加超时判断;运行程序等待该方法多长时间,超过则另作处理。

    下面是写的一段代码,大致可以实现该功能:public static void main(String[] args){Thread t = null;try{FutureTask task = new FutureTask(new Callable() {public Boolean call() throws Exception {Thread.sleep(10*100);//处理方法return true;  //返回处理结果}});t = new Thread(task);t.start();boolean bl = task.get(10*10, TimeUnit.MILLISECONDS); //允许阻塞等待方法处理1秒,超出则抛异常System.out.println(bl);System.out.println(t.getState());}catch(Exception e1){e1.printStackTrace();System.out.println(t.getState());t.interrupt(); //在超时情况下上面新生成的线程不会关闭直到方法处理完毕,需要中断}try{for(int j=0;j<13;j++){Thread.sleep(10*10);System.out.println(j+ "" + t.getState());}}catch(Exception e2){e2.printStackTrace();}}

    展开全文
  • } /** * 故意设置为超时,可以在服务器有返回,但是错误返回的时候直接调用这个,当成超时处理 * */ public synchronized void setTimeOut() { m_elapsed = m_length+1; } /** */ public void run() { // 循环 System....

    "声明一个boolean公共变量,表明当前httpconnection是否得到服务器回应。

    你的连接线程中在连接之前置这个变量为false;

    另起一个监视线程,拿到那个HttpConnection的连接对象,并循环监视这个boolean公共变量。如果指定时间内(20秒后)你的boolean公共变量还是false,那么就主动置httpconnection=null。这样,那边连接线程就会抛出异常退出来。"

    写了Timer类来实现.(学习国外一个网站上的写法)

    class Timer extends Thread {

    /** 每个多少毫秒检测一次 */

    protected int m_rate = 100;

    /** 超时时间长度毫秒计算 */

    private int m_length;

    /** 已经运行的时间 */

    private int m_elapsed;

    /**

    * 构造函数

    *

    * @param length

    *            Length of time before timeout occurs

    */

    public Timer(int length) {

    // Assign to member variable

    m_length = length;

    // Set time elapsed

    m_elapsed = 0;

    }

    /**

    * 重新计时

    *

    */

    public synchronized void reset() {

    m_elapsed = 0;

    System.out.println("reset timer");

    }

    /**

    * 故意设置为超时,可以在服务器有返回,但是错误返回的时候直接调用这个,当成超时处理

    *

    */

    public synchronized void setTimeOut()

    {

    m_elapsed = m_length+1;

    }

    /**

    */

    public void run() {

    // 循环

    System.out.println("timer running");

    for (;;) {

    // Put the timer to sleep

    try {

    Thread.sleep(m_rate);

    } catch (InterruptedException ioe) {

    continue;

    }

    synchronized (this) {

    // Increment time remaining

    m_elapsed += m_rate;

    // Check to see if the time has been exceeded

    if (m_elapsed > m_length && !isConnActive) { //isConnActive 为全局变量

    // Trigger a timeout

    timeout();

    break;

    }

    }

    }

    }

    /**

    * 超时时候的处理

    *

    */

    public void timeout() {

    httpConnection = null;

    System.out.println("conn time > " + TIME_OUT + " ms");

    }

    }

    展开全文
  • Java HTTP请求时设置超时

    千次阅读 2021-03-22 11:23:43
    [http是无状态的连接,不像socket可以有timeout的异常,因此在判断...声明一个booleaHTTP请求时设置超时时间是明智的,避免死等。HttpPost request = new HttpPost(requestUrl);HttpClient client = new DefaultHtt...

    [http是无状态的连接,不像socket可以有timeout的异常,因此在判断超时上一直比较困扰.这段时间做j2me的一个小游戏.用到了http连接,学习了论坛上说的一种方法.声明一个boolea

    HTTP请求时设置超时时间是明智的,避免死等。

    HttpPost request = new HttpPost(requestUrl);

    HttpClient client = new DefaultHttpClient();

    client.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15000);[以前一直在写http请求,设置超时也没怎么认真测试过,今天项目不怎么忙,写了一个http请求测了一下发现以前设置的超时根本没起作用,原来是在发送请求之后设置的超时时间

    //也可以这样,下面这行代码本质上也是通过上面的代码实现

    // HttpConnectionParams.setConnectionTimeout(client.getParams(), 15000);

    HttpResponse hps = client.execute(request);

    是否超时可以通过hps.getStatusLine().getStatusCode()来判断。[1.http长连接相关知识http长连接对我们来说并不陌生,但长连接并不是永远不会关闭。对于HTTP长连接需要注意下面几点:keepalive_timeout指的是web服务器发送完最后一个响

    展开全文
  • #region 判断方法执行是否超时/// /// 判断方法是否超时,适合无参数方法/// /// 方法名称/// 超时时间限定private void CallWithTimeout(Action action, int timeoutMilliseconds){Thread threadToKill = null;...

    #region 判断方法执行是否超时

    ///

    /// 判断方法是否超时,适合无参数方法

    ///

    /// 方法名称

    /// 超时时间限定

    private void CallWithTimeout(Action action, int timeoutMilliseconds)

    {

    Thread threadToKill = null;//开辟一个空线程

    Action wrappedAction = () =>

    {

    threadToKill = Thread.CurrentThread;

    action();

    };

    IAsyncResult results = wrappedAction.BeginInvoke(null, null);

    //如果这个线程的执行时间超过timeoutMilliseconds

    if (results.AsyncWaitHandle.WaitOne(timeoutMilliseconds))

    {

    wrappedAction.EndInvoke(results);

    }

    else

    {

    //终止线程

    threadToKill.Abort();

    }

    }

    #endregion

    展开全文
  • 并设置超时定时器, deadlineCancellationFuture = startDeadlineTimer(effectiveDeadline); 一旦超时就 调用 stream.cancel(DEADLINE_EXCEEDED); private class DeadlineTimer implements Runnable { @Override ...
  • 1问题描述在应用软件的开发中,经常会遇到这样的一种需求:需要实现一个方法来执行某种任务,而这个方法的执行时间不能超过指定值,如果超时,则调用者不管这个方法将来是否可能执行成功,都要中断它的执行,或者让...
  • session了解及超时处理

    2021-02-12 23:23:24
    domain=domain 支持cookie的浏览器都会对此作出反应,即创建cookie文件并保存(也可能是内存cookie),用户以后在每次发出请求时,浏览器都要判断当前所有的cookie中有没有没失效(根据expires属性判断)并且匹配了...
  • HttpURLConnection超时异常问题最近在使用java网络连接时:具体如下:URL url=new URL("http://XXX.com.cn");HttpURLConnection connect=(HttpURLConnection)url.openConnection();connect.setConnectTimeout(500);//...
  • 一、发现问题的系统检查:一个管理平台门户网页进统计页面提示请求超时,随进服务器操作系统检查load average超过4负载很大,PID为7163的进程占用到了800%多。二、定位故障根据这种故障的一般处理思路,先找出问题...
  • JS实现页面超时后自动跳转到登陆页面网友方案:var myTime = setTimeout("Timeout()", 60000);function resetTime() {clearTimeout(myTime);...}function Timeout() {alert("您的登录已超时, 请点确定后重新登录!");...
  • spring boot2 RestTemplate 请求URL超时RestTemplate配置代码如下@Beanpublic RestTemplate restTemplate(RestTemplateBuilder builder) {HttpComponentsClientHttpRequestFactory httpRequestFactory = new ...
  • 偶然间,扒别人的代码,发现有一个工具类,是判断是否为Ajax请求,我在想,为什么要这个工具类?百度了一下,发现确实需要这个方法。如果一个会话已经超时,但是此时再通过ajax请求,那么ajax返回的则是一个登陆页面...
  • JAVA Socket超时浅析

    2021-02-12 22:07:23
    JAVA Socket超时浅析套接字或插座(socket)是一种软件形式的抽象,用于表达两台机器间一个连接的“终端”。针对一个特定的连接,每台机器上都有一个“套接字”,可以想象它们之间有一条虚拟的“线缆”。JAVA有两个...
  • Java语言中内建了对于多线程的支持,可以非常方便的创建、控制线程以及在线程之间进行同步操作。...特别地,为了提供对于程序健壮性方面的考虑,在Java中提供了对于wait方法超时语意的支持。但是Java在对于wa...
  • 废话不多说直接上代码 ... //请求超时时间(毫秒) @Value("${http.connetTimeout}") private int connetTimeout; //传输超时时间(毫秒) @Value("${http.socketTimeout}") private int socket
  • 一、原理1....2. 超时登陆登陆后无操作*分钟后自动销毁session,用户进行下一步操作时跳转错误页面。3. 区分异地登陆和超时登陆起效时跳转的...超时登陆由系统控制,在web.xml中配置,或者由监听器控制,利用session.s...
  • HTTP请求的话,有可能请求超时,中断失败,IO异常其实都有可能,如果是平时打开一个网页还好,打不开的时候,你会关掉,或者他页面给你显示信息。但是同步,不可以这样做,一旦请求失败,必须让数据正确的同步,今天...
  • Javaweb项目中session出现超时如何解决发布时间:2020-12-05 17:34:03来源:亿速云阅读:98作者:LeahJavaweb项目中session出现超时如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家...
  • 我的场景是前台为react也就是基于axios进行请求的后台就是通俗的java后台服务,具体实现步骤如下1)首先前台进行发送登录请求,后台进行登录校验2)后台生成token,返回给前台,前台可以将之保存在浏览器中的...
  • package timeout; ... import dto.QueryReqDTO;...import java.lang.reflect.Method; import java.util.concurrent.*; /** * @description: 方法超过执行时间后抛出异常 * @author: lvyk * @create: 2021/7/2.
  • 尝试连接Active Directory时,偶尔会遇到此异常.javax.naming.CommunicationException: :[Root exception is java.net.ConnectException: Connection timed out: connect]这是我的代码:DirContext ctx = null;...
  • 尤其在微服务架构下,一次请求可能要经过一条很长的链路,跨多个服务调用后才能返回结果。当服务超时发生时,研发同学往往要抽丝剥茧般去分析自身系统的性能以及依赖服务的性能,这也是为什么服务超时相对于服务出错...
  • Java POST请求案例

    2021-02-28 09:13:18
    packagecom.demo;importcom.alibaba.fastjson....importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importjava.io.PrintWriter;importjava.net.HttpURLConn...
  • Java网络请求工具类(依赖:org.apache.http;注:HttpClient4.4,HttpCore4.4)到此处可以去下载依赖包:http://hc.apache.org/downloads.cgiimport java.util.List;import org.apache.http.HttpStatus;import org....
  • 就像请求 永远等待响应 超时处理 java 从零开始手写 RPC (01) 基于 socket 实现 java 从零开始手写 RPC (02)-netty4 实现客户端和服务端 java 从零开始手写 RPC (03) 如何实现客户端调用服务端? java 从零开始手写...
  • import java.util.Iterator;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import org.apache.log4j.Logger;public class Transfer {private static Logger logger = ...
  • 本文主要介绍在 Java 编程中发送 HTTP 请求的两种常用方法: JDK 原生的 HttpURLConnection 发送 HTTP 请求 Apache HhttpClient 发送 HTTP 请求 两种方法都可以发送 HTTP 请求,第一种是 Java 原生的,因此使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 79,490
精华内容 31,796
关键字:

java判断请求超时

java 订阅