TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
一、配置jdbc.properties添加:- #------------ Task ------------
& [! ?: h8 |$ U$ J& K( w- F - task.core_pool_size=5
{( C, L9 M$ s! r2 n - task.max_pool_size=50' W9 n0 ^1 B1 U/ E
- task.queue_capacity=10002 w4 K/ I8 |7 }7 L: u" }) K5 `
- task.keep_alive_seconds=60
复制代码
' Y3 G) X( b% R9 U6 e; F6 U二、配置spring的applicationContext.xml添加:
% V6 ^5 Q' z% k! j! a6 b- N9 }" P- <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">! M1 h/ L$ { X. X, b6 n# x( O
- <!-- 核心线程数 -->
, H- E4 @) F$ d4 ~8 A - <property name="corePoolSize" value="${task.core_pool_size}" />" \2 V7 H, n! L8 P4 W7 _
- <!-- 最大线程数 --> , P) o- v" `7 w9 q3 }3 y. m5 N
- <property name="maxPoolSize" value="${task.max_pool_size}" />7 f" w' s7 C- s5 w: z0 ?% P+ I
- <!-- 队列最大长度 -->
* [0 v4 x% e" x2 u8 e" e6 _, P6 J9 a - <property name="queueCapacity" value="${task.queue_capacity}" />
0 N( E- Y7 }2 b( s+ p - <!-- 线程池维护线程所允许的空闲时间,默认为60s -->
. T! i/ T. r) R4 G& W: p; X) P - <property name="keepAliveSeconds" value="${task.keep_alive_seconds}" />
2 M+ w& X1 g8 x( m - </bean>
. E8 [' L# |$ [) |+ i - <!-- 注解式 -->
0 d7 R# J8 ~, T1 [2 O* V9 Q - <task:annotation-driven />
复制代码 三、在实现层Impl声明并注入:
6 L H3 P' E+ J. M/ Z( H- @Resource(name = "taskExecutor")
0 B9 p( ~3 I0 e" n, ~ - private TaskExecutor taskExecutor;
复制代码 & U, r9 Q: U5 P! z
四、在方法里调用:/ @9 c0 Y( h4 R' P8 A' V) x$ P! i1 p
- try {0 ^2 P3 a' @/ F. W* r
- taskExecutor.execute(new Runnable() {% S" G9 `5 S+ w; k
- public void run() {
6 x. h6 J' K1 d - //这里编写处理业务代码
! C8 ` b% A$ h/ P0 L) M% r -
3 s* f7 P1 v, @$ A8 b9 { - }
+ m; l# Z8 Q* k; C. K$ G - });
- X7 r, { O. _& r I- i4 b$ I - } catch (Exception e) {
% b2 |) r; l" }: Z( W+ Q - e.printStackTrace();
6 L* T& m* s$ m7 U% r - }
复制代码 # [5 ^+ X2 M+ A6 N% y( j0 ` I
# F+ O$ Q! _! ^$ Y3 o1 G7 X- N: h |
|