springboot設置程序執行超時時間


springboot設置程序執行超時時間

springboot2.x

方法一,通過配置文件:

spring.mvc.async.request-timeout=2s

  

webconfig需要繼承WebMvcConfigurerAdapter,有點過時了這個

public class WebMvcConfig extends WebMvcConfigurerAdapter{


}

  

controller代碼

 @GetMapping("/index")
    @ResponseBody
    public Callable<JsonResult>  index() {

        return new Callable<JsonResult>() {
            @Override
            public JsonResult call() {
                try {
                    Thread.sleep(60000);
                } catch (InterruptedException e){
                    Thread.interrupted();
                    return JsonResult.failure("執行失敗");
                }catch (Exception e){
                    e.printStackTrace();
                    return JsonResult.failure("執行失敗");
                }
                return JsonResult.success();
            }
        };

    }

  

 

 

 

方法二:

webconfig實現WebMvcConfigurationSupport 的bean

public class WebMvcConfig extends WebMvcConfigurationSupport {

@Override
    public void configureAsyncSupport(final AsyncSupportConfigurer configurer) {
        configurer.setDefaultTimeout(1);
        configurer.registerCallableInterceptors(timeoutInterceptor());
    }
    @Bean
    public TimeoutCallableProcessingInterceptor timeoutInterceptor() {
        return new TimeoutCallableProcessingInterceptor();
    }

}

  

controller代碼

@GetMapping("/index")
    @ResponseBody
    public Callable<JsonResult>  index() throws InterruptedException {

        

        return new Callable<JsonResult>() {
            @Override
            public JsonResult call() throws Exception {
                Thread.sleep(60000);
                return JsonResult.success();
            }
        };

    }

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM