SpringBoot_线程池_ThreadPoolTaskExecutor_尼古拉斯__赵四的博客-程序员秘密

技术标签: Java  SpringBoot  


1. 线程池配置
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

/**
* 线程池配置
* @author xiangni123
*
*/
@Configuration
public class ExecutorConfig {
private static int CORE_POOL_SIZE = 5;
private static int MAX_POOL_SIZE = 1000;
@Bean(name="taskExecutor")
public ThreadPoolTaskExecutor taskExecutor(){
ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor();
//线程池维护线程的最少数量
poolTaskExecutor.setCorePoolSize(CORE_POOL_SIZE);
//线程池维护线程的最大数量
poolTaskExecutor.setMaxPoolSize(MAX_POOL_SIZE);
//线程池所使用的缓冲队列
poolTaskExecutor.setQueueCapacity(200);
//线程池维护线程所允许的空闲时间
poolTaskExecutor.setKeepAliveSeconds(30000);
poolTaskExecutor.setWaitForTasksToCompleteOnShutdown(true);
return poolTaskExecutor;
}
}


2.相关线程
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class WxTestThread implements Runnable {

private static final Logger logger = LoggerFactory.getLogger(WxTestThread.class);
@Override
public void run() {
logger.info("执行线程!");
}
}


3.线程调用处

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import com.haoyi.demo.controller.HelloWorldController;
import com.haoyi.weixin.thread.WxTestThread;

@RestController
@RequestMapping("wxTest")
public class WxTestController {
private static final Logger logger = LoggerFactory.getLogger(WxTestController.class);
@Autowired
private ThreadPoolTaskExecutor taskExecutor;
@RequestMapping(value="helloWx")
public ModelAndView helloWx(){
logger.info("hello weixin!!!");
return new ModelAndView("wx/helloWeixin");
}
/**
* http://10.0.110.40:8088/wxTest/helloWxThread
* @return
*/
@RequestMapping(value = "helloWxThread", method = RequestMethod.GET)
public void helloWxThread(){
logger.info("hello weixin!!!");
setWxTestThread();
}
public void setWxTestThread(){
WxTestThread testThread = new WxTestThread();
taskExecutor.execute(testThread);
}
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shuzhupeng/article/details/79163932

智能推荐

程序的动态链接(3):延迟绑定_Aspiresky的博客-程序员秘密_延迟绑定

概述动态链接将链接工作由编译时推迟到了运行时,在每次程序运行时,动态链接器都要寻找并加载依赖的动态库,然后进行符号查找和重定位工作,这导致动态链接的程序在加载时会带来一些额外的开销。为了提升程序的加载速度,编译系统使用了一种称为延迟绑定(Lazy Binding)的技术。延迟绑定实现使用延迟绑定是基于这样一个前提:在动态链接下,程序加载的模块中包含了大量的函数调用,因此动态链接器会耗费很多的时间用于解决模块之间的函数引用的符号查找以及重定位,而实际上只有很少的一部分符号会被立刻访问。延迟绑定通过将函数

hadoop从节点启动不了NodeManager_luxiangzhou的博客-程序员秘密

yarn-site.xml文件加入以下配置<property>        <description>The address of the container manager in the NM.</description>        <name>yarn.nodemanager.address</name>       ...

FLEX4 SDK 下载 (含加载项、源代码)_vebasan的博客-程序员秘密

<br /> <br /> <br />下载介绍:<br />在ADOBE的开源平台上,我们看到了最新的Flex 4.0.0.2675  SDK的下载,下载该SDK可以直接应用在FLEX3中。<br /> <br />FLEX4 SDK 官方下载地址:<br />Adobe Flex4 SDK 下载地址:http://flexorg.wip3.adobe.com/flexsdk/4.0.0.2675/flex_sdk_4.0.0.2675.zip<br />Flex SDK 开源下载:http://flex

adb pm 指令介绍_qq_24664311的博客-程序员秘密

Android下pm 命令详解(2012-09-28 20:57:15)转载▼标签: androidpm 分类: Android  作者:Sam (甄峰) [email protected]在看相关PackageManager代码时,无意中发现Android 下提供一个pm命令,通常放在/system/bin/下。这个命令与Package有关,且非常实用。所以研究之。

POJ 最短路题目_aidun2708的博客-程序员秘密

POJ1122 &amp; ZOJ1053[FDNY to the Rescue!] POJ1511 &amp; ZOJ2008[Invitation Cards] POJ2240 &amp; ZOJ1092[Arbitrage] 博客里都有题解,这里就不加穿越了吧~转载于:https://www.cnblogs.com/FreeDestiny/archive/2011...

循环结构_ice_gang的博客-程序员秘密_while循环结构

循环结构的特点while 循环循环结构  循环条件                 循环操作int i=1;while(i&amp;lt;=30 循环条件){       //符合条件,循环继续执行;否则,循环退出System.out.println(&quot;循环语句&quot;);循环操作   //循环中被重复执行的操作i++;}特点:先判断,在执行;编码规范:缩进、换行。do-while循环循环结构    循环操作 ...

随便推点

背包问题03—混合背包(解题样例)_皮皮皮皮皮皮皮卡乒的博客-程序员秘密

题意描述:看哪几棵樱花树能使美学值最高且爱与愁大神能准时(或提早)去上学。解题方法:这是一个混合背包问题,并且是01背包,完全背包,多重背包的混合,实际上我感觉只要将三者分开来写还是挺好写的,剩下的就看代码了,看不懂可以先看看我的另外两篇文章讲述的是01,完全,多重背包里面有详细的讲述看完后再看这个肯定也就能看懂了;01背包链接:https://blog.csdn.net/weixin_4...

python数据分析之数据可视化matplotlib_cxmscb的博客-程序员秘密_"file \"d:/数据可视化分析4/8.1.py\", line 3 %matplotlib i

import matplotlib.pyplot as pltimport numpy as npimport numpy.random as randnimport pandas as pdfrom pandas import Series,DataFramefrom pylab import mplmpl.rcParams['axes.unicode_minus'] = False

使用UTF8编码将Excel转换为CSV_p15097962069的博客-程序员秘密_excel转csv encoding是什么

我有一个包含一些西班牙语字符(波浪号等)的Excel文件,我需要将其转换为CSV文件以用作导入文件。 但是,当我执行“另存为CSV”时,它会处理不是ASCII字符的“特殊”西班牙字符。 这似乎

【gRPC】Protobuf中间文件介绍、使用、Go新版本TLS证书认证问题_godebug=x509ignorecn=0_童话ing的博客-程序员秘密

文章目录前言gRPC初体验前言初学gRPC,跟着B站go语言grpc框架实战Up主进行学习,其中视频中的坑还是比较多的,比如版本方法废弃,获取库地址废弃等,本文基于该视频整理了前三讲的实战内容。gRPC初体验gRPC是Google开发的高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。本身它不是分布式的,所以需要进一步的开发。gRPC支持Java、C++、G_1671465600

Android 中 getString() 方法的小知识点_夏洛克的猫的博客-程序员秘密

最近经常看到为了获取类似如下的字符串<string name="test">hello %s</string>采用下面的代码String formatStr = String.format(getString(R.string.test), "Android");其实 Android 中 Activity ,Fragment 等中其实已经给我封装了更简便的方法,我们可以直接采用如下方法String

将项目放入腾讯云linux,在腾讯云服务器CentOS 7.5上部署YApi项目-Go语言中文社区..._weixin_39524984的博客-程序员秘密

简介:YApi是去哪儿移动架构组开源的API管理系统,YApi功能非常强大。一、准备工作1.1 环境操作系统:CentOS 7 (CentOS-7-x86_64-Minimal-1708)环境要求:nodejs(7.6+)mongodb(2.6+)二、部署nodejs部署nodejs尽可能选择偶数版本,因为偶数版本官方有较长的维护时间,故这次选择8.x。# 获取资源curl-sLhttps:/...