下面列出了org.springframework.web.context.request.async.CallableProcessingInterceptor#org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/** Configure async support for Spring MVC. */
@Bean
public WebMvcConfigurer webMvcConfigurerConfigurer(AsyncTaskExecutor taskExecutor, CallableProcessingInterceptor callableProcessingInterceptor) {
return new WebMvcConfigurer() {
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setDefaultTimeout(360000).setTaskExecutor(taskExecutor);
configurer.registerCallableInterceptors(callableProcessingInterceptor);
WebMvcConfigurer.super.configureAsyncSupport(configurer);
}
};
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(coreSize>0?coreSize:processors);
executor.setMaxPoolSize(maxSize>0?maxSize:2*processors);
executor.setThreadNamePrefix("ProxyAsync");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
executor.initialize();
configurer.setTaskExecutor(executor);
configurer.setDefaultTimeout(timeout);
configurer.registerCallableInterceptors(new TimeoutCallableProcessingInterceptor());
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
ThreadPoolTaskExecutor t = new ThreadPoolTaskExecutor();
t.setCorePoolSize(10);
t.setMaxPoolSize(100);
t.setThreadNamePrefix("BankAccountSync");
t.initialize();
configurer.setTaskExecutor(t);
}
/**
* 配置异步
* @author Frodez
* @date 2019-05-10
*/
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setTaskExecutor(asyncConfig.getAsyncExecutor());
configurer.setDefaultTimeout(asyncConfig.getProperties().getTimeout());
configurer.registerCallableInterceptors(new TimeoutCallableProcessingInterceptor());
configurer.registerDeferredResultInterceptors(new TimeoutDeferredResultProcessingInterceptor());
}
@Bean
protected WebMvcConfigurer webMvcConfigurer() {
return new WebMvcConfigurer() {
@Override
@SuppressFBWarnings("NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE") // false positive
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setTaskExecutor(getAsyncExecutor());
}
};
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer){
if(asyncTaskExecutor!=null){
configurer.setTaskExecutor(asyncTaskExecutor);
}
if(mvcAsyncProperties!=null){
configurer.setDefaultTimeout(mvcAsyncProperties.getTimeout());
}
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
if (asyncRequestTimeout != null) {
configurer.setDefaultTimeout(asyncRequestTimeout);
}
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.registerCallableInterceptors(callableInterceptor());
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
if (asyncRequestTimeout != null) {
configurer.setDefaultTimeout(asyncRequestTimeout);
}
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.registerCallableInterceptors(callableInterceptor());
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setTaskExecutor(new ConcurrentTaskExecutor(Executors.newFixedThreadPool(5)));
}
/**
* Configure asynchronous support, set up a work-threads pool for
* asynchronous execution of business logic, and set the default timeout
* time to 60 seconds
*/
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setTaskExecutor(executor);
configurer.setDefaultTimeout(config.getLongPollTimeout());
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
// Do nothing
}
@Override
public void configureAsyncSupport(final AsyncSupportConfigurer configurer) {
configurer.setDefaultTimeout(FIVE_MINUTES);
configurer.registerCallableInterceptors(timeoutInterceptor());
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setTaskExecutor(appExecutor());
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer asyncSupportConfigurer) {
//compatible with spring-webmvc 4.x from spring boot 1.x
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
if (asyncRequestTimeout != null) {
configurer.setDefaultTimeout(asyncRequestTimeout);
}
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.registerCallableInterceptors(callableInterceptor());
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.registerDeferredResultInterceptors(new ReadListenerDeferredResultProcessingInterceptor());
}
@Override
public void configureAsyncSupport(final AsyncSupportConfigurer configurer) {
configurer.setDefaultTimeout(nakadiStreamTimeout);
configurer.registerCallableInterceptors(timeoutInterceptor());
}
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
configurer.setDefaultTimeout(60L * 1000L);
configurer.setTaskExecutor(asyncTaskExecutor());
}
/**
* 自定义配置的异步支持
*
* @param configurer 配置对象
* @param corePoolSize 核心池大小
* @param maxPoolSize 最大线程池数
* @param queueCapacity 队列容量
* @param keepAliveSeconds 线程保存存活时间
* @param timeout 超时时间,ms
* @deprecated since 1.16.0,因为SpringBoot 2.1.0版本开始默认已装配
*/
public void configure(AsyncSupportConfigurer configurer, int corePoolSize, int maxPoolSize, int queueCapacity, int keepAliveSeconds, long timeout) {
// 默认超时时间
configurer.setDefaultTimeout(timeout);
ThreadUtil.configTaskExecutor(applicationTaskExecutor, "pulsar-", corePoolSize, maxPoolSize, queueCapacity, keepAliveSeconds);
configurer.setTaskExecutor(applicationTaskExecutor);
}
/**
* 配置默认的Spring MVC异步支持
*
* @param configurer 配置对象
* @param timeout 超时时间,ms
* @deprecated since 1.16.0,因为SpringBoot 2.1.0版本开始默认已装配
*/
public void configure(AsyncSupportConfigurer configurer, long timeout) {
configure(configurer, 5, 10, 200, 100, timeout);
}