TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
一、配置jdbc.properties添加:- #------------ Task ------------, z" D% m) M2 G9 o7 V
- task.core_pool_size=5( j" F- ^# c! j5 i
- task.max_pool_size=50$ ^) O% f z3 b! U& ]$ ?
- task.queue_capacity=1000
$ C7 D ]+ o5 i* t( v9 |; E9 X, V - task.keep_alive_seconds=60
复制代码
s# u0 n0 D+ k+ C7 O5 y& |2 |- ^6 }二、配置spring的applicationContext.xml添加:) A3 M4 o. W- ]8 d
- <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">9 H d" r% w* y5 i6 Z
- <!-- 核心线程数 -->
4 B' y. ~0 Z% v- ~+ c1 { - <property name="corePoolSize" value="${task.core_pool_size}" />
" {* S2 [# Q( b - <!-- 最大线程数 --> # n' R9 q( X. a8 ?
- <property name="maxPoolSize" value="${task.max_pool_size}" />
/ T3 ?0 G9 i. k - <!-- 队列最大长度 -->& p9 ]; T8 r' s, R4 e6 o
- <property name="queueCapacity" value="${task.queue_capacity}" />
0 U& O" O# y3 t: N9 B N0 j: ?0 Q - <!-- 线程池维护线程所允许的空闲时间,默认为60s -->
2 s: N: Z8 c. R- w - <property name="keepAliveSeconds" value="${task.keep_alive_seconds}" /># |+ Q$ z! h# r; V/ L! x6 Z
- </bean>
! s) R0 x1 Z. ^' A4 X) ` - <!-- 注解式 -->
* l, o) r6 ^/ }, J2 ]* {* t _7 x - <task:annotation-driven />
复制代码 三、在实现层Impl声明并注入:
0 W, z2 r' W" T! M- @Resource(name = "taskExecutor")/ y E# j8 a3 ~/ i; t' k8 {9 K
- private TaskExecutor taskExecutor;
复制代码 ; @/ [# L; d0 s+ b( V5 ^
四、在方法里调用:) s. @7 w: s1 E$ R
- try {2 x; l. Z0 E6 q n
- taskExecutor.execute(new Runnable() {0 C% Z& i8 s* r9 q
- public void run() {
9 ?+ V" C3 u G! T/ S+ ] - //这里编写处理业务代码% c5 g, e1 ^ V' H$ p6 H
-
X& R1 Z2 V) T* |3 C7 ~# e. D" L: o - }! F6 h' }, Q/ e* D. }
- });% l2 T3 y" b! ~5 y) u
- } catch (Exception e) {- y$ s: g) P3 j/ I& c
- e.printStackTrace();* l* G3 T, Z! R* ~, ~, d3 W
- }
复制代码 % \+ y, M! I/ w) _" M2 z
# W* b( z7 t7 b$ w& ] |
|