TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
一、配置jdbc.properties添加:- #------------ Task ------------
# u9 }- |" B+ @6 L' O - task.core_pool_size=5
4 s Z4 g8 J2 c/ c4 [, C - task.max_pool_size=50
, M1 @6 a# Y6 J, P$ W! `: Z' \ - task.queue_capacity=10001 h3 B. {7 t( I/ `, z
- task.keep_alive_seconds=60
复制代码 ' o. S" F0 o$ q7 y+ b6 K) o
二、配置spring的applicationContext.xml添加:
1 Q: V& y/ L$ ^* ~% N& p- <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
; T2 e( V' q7 _7 Z! @7 A( n - <!-- 核心线程数 -->
/ J" s. h! G9 S* C2 D - <property name="corePoolSize" value="${task.core_pool_size}" />. H% B& B% f& `
- <!-- 最大线程数 -->
5 R) P. ?- [1 V0 z, \! E. K+ t - <property name="maxPoolSize" value="${task.max_pool_size}" />- Q7 B, ~6 Z& \) Z5 X( g) P
- <!-- 队列最大长度 -->. o& r% o7 ^. b; b8 Q
- <property name="queueCapacity" value="${task.queue_capacity}" />
2 E# Q2 Q9 t( O7 A& a; r - <!-- 线程池维护线程所允许的空闲时间,默认为60s -->; q/ j: ~5 v( j( ~& x
- <property name="keepAliveSeconds" value="${task.keep_alive_seconds}" />
4 i5 l7 a" E b7 M - </bean>7 F3 L3 O! Q* C
- <!-- 注解式 -->
; J4 j4 ?/ f- {& D+ p7 N - <task:annotation-driven />
复制代码 三、在实现层Impl声明并注入:9 v6 c$ }* S, ?5 f
- @Resource(name = "taskExecutor")6 ^& [; p. f; e4 |: d: ~
- private TaskExecutor taskExecutor;
复制代码
7 |' _$ a5 G# ~4 r) x四、在方法里调用:
8 @) H# ?9 L8 z( b3 M3 ^- try {
! ?8 d! }, v! N- Y# ] - taskExecutor.execute(new Runnable() {6 U, [8 v! g* }8 s3 C3 a4 L
- public void run() {( E9 u8 W2 l0 \9 H) M
- //这里编写处理业务代码; H' D9 @2 w1 j+ j) T) w
- 7 } M+ C$ _& X' y2 z
- } G8 R7 Q$ U3 F/ U/ E- m: }9 G
- });
- ]0 H/ s, E9 U2 O: G4 u& L - } catch (Exception e) {
2 @$ ^; Z& }. r, M3 [ - e.printStackTrace();$ ~3 v2 U/ E0 L. M$ ~2 I7 H
- }
复制代码 . j5 ]" d1 T& ~+ ?/ |
4 h9 |' z1 B0 s3 r$ w! I
|
|