我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > SpringMVC如何配置TaskExecutor线程池
总共48087条微博

动态微博

查看: 2922|回复: 0

SpringMVC如何配置TaskExecutor线程池

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2015-06-12 13:16:57 |只看该作者 |倒序浏览
    一、配置jdbc.properties添加:
    1. #------------ Task ------------
      ) u; U( A% Q! r8 T0 v( d. Z+ A6 z
    2. task.core_pool_size=5" o( M9 T/ m; m4 @$ f& E
    3. task.max_pool_size=505 ~/ z1 r. u' r' t
    4. task.queue_capacity=1000
      ; e% B+ H% i/ I  R: e
    5. task.keep_alive_seconds=60
    复制代码
    1 x0 L% B+ f. ^) B% \) a. N9 x( m
    二、配置spring的applicationContext.xml添加:9 a5 n  p0 |8 G% B& k+ c, b
    1. <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
      # _- n& `  S. E( f' h3 q$ [% ]% m
    2.         <!-- 核心线程数 -->     
      6 M4 c3 z! f5 _8 j3 i) c
    3.         <property name="corePoolSize" value="${task.core_pool_size}" />
      % |; n* o; G, ^" x
    4.         <!-- 最大线程数 -->  
      $ \3 {' X3 f7 j9 |% p2 b' i
    5.         <property name="maxPoolSize" value="${task.max_pool_size}" />
      1 S2 o; G3 N) i# q6 s, A* H& k
    6.         <!-- 队列最大长度 -->
      0 a0 b2 x; H, @1 q7 j+ v& v% X
    7.         <property name="queueCapacity" value="${task.queue_capacity}" />
      * Z; i1 \5 l4 V/ v9 Q' G& ?
    8.         <!-- 线程池维护线程所允许的空闲时间,默认为60s -->
      5 ?" c$ T2 \7 I+ K+ `
    9.         <property name="keepAliveSeconds" value="${task.keep_alive_seconds}" />6 h8 H9 ~% E4 c; K1 Q3 i! z5 o
    10.     </bean>
      / E. O2 p" G( I8 f# x9 V
    11.     <!-- 注解式 -->
      * y/ ^! t9 v9 L6 e! E% B3 O
    12.     <task:annotation-driven />
    复制代码
    三、在实现层Impl声明并注入:" B, \; d% y" E- Q/ v, |% d
    1. @Resource(name = "taskExecutor")4 G) j. y5 e0 l# r  n% ~
    2.     private TaskExecutor taskExecutor;
    复制代码

    ( g2 e# h$ g% T- F/ e四、在方法里调用:7 p+ u% g+ W2 w0 W, g+ c- S$ b! P
    1. try {
      3 D( l6 T# k: u9 x
    2.             taskExecutor.execute(new Runnable() {
      ) {1 `, E& G- ?5 A; y
    3.                 public void run() {
      " l4 h( q  ~' E9 N
    4.                     //这里编写处理业务代码
      & S8 f( f% w& [, R3 C
    5.                     7 G% g5 C- H& W' q6 X# U# I4 I
    6.                 }" w5 G. {& @; R
    7.             });
      , Y; r. E6 @. J: H% T
    8.         } catch (Exception e) {$ j9 ?! L' y4 |7 A6 C9 E6 I9 Q
    9.             e.printStackTrace();( R1 V. ], z! i2 Y
    10.         }
    复制代码
    0 Y5 a3 s3 P9 i9 O7 d

    / u. C; |; W) P$ }( E

    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表