扩展executor
public class AdvancedThreadExecutor extends StandardThreadExecutor {
@Override
protected void startInternal() throws LifecycleException {
super.namePrefix = "custom-tomcat-";
super.startInternal();
executor.setRejectedExecutionHandler(new RejectedExecutionHandler() {
@Override
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
//add stat
throw new RejectedExecutionException("Task " + r.toString() +
" rejected from " +
executor.toString());
}
});
}
}
配置
@Component
public class EmbeddedTomcatConfig implements EmbeddedServletContainerCustomizer {
private static final Logger logger = LoggerFactory.getLogger(EmbeddedTomcatConfig.class);
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
if(container instanceof TomcatEmbeddedServletContainerFactory){
TomcatEmbeddedServletContainerFactory factory = (TomcatEmbeddedServletContainerFactory)container;
factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
AdvancedThreadExecutor myExecutor = new AdvancedThreadExecutor();
connector.getService().addExecutor(myExecutor);
ProtocolHandler handler = connector.getProtocolHandler();
Http11NioProtocol http11NioProtocol = (Http11NioProtocol)handler;
http11NioProtocol.setExecutor(myExecutor);
}
});
}
}
}
验证
curl -i http://localhost:8080/dump
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。