TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
一、配置jdbc.properties添加:- #------------ Task ------------4 i/ o# O$ T8 k- N
- task.core_pool_size=5
+ r! Q7 S6 g6 x/ I. t- I - task.max_pool_size=50
- l0 T0 {* b# a7 i4 {8 V - task.queue_capacity=10002 u& a4 C0 F. N( }, m5 }
- task.keep_alive_seconds=60
复制代码 ; E5 | [. ~5 r8 s$ s
二、配置spring的applicationContext.xml添加:
! }: B& ]9 Y$ T- <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
$ n0 B* M0 ]+ P+ Y5 m2 r) ^9 { - <!-- 核心线程数 -->
8 }1 a; v( q% q; S- g7 ~4 d4 r - <property name="corePoolSize" value="${task.core_pool_size}" />$ \" ^: |1 m' U7 G
- <!-- 最大线程数 --> 4 b3 g6 S* f& D6 Z1 \1 O
- <property name="maxPoolSize" value="${task.max_pool_size}" />, r# x* ~2 i6 @- G: n
- <!-- 队列最大长度 -->
8 _) C$ G8 {, | - <property name="queueCapacity" value="${task.queue_capacity}" />
! i% j/ c' m( G2 v* | - <!-- 线程池维护线程所允许的空闲时间,默认为60s -->
+ f- R, _0 o! T, n5 b: M# S - <property name="keepAliveSeconds" value="${task.keep_alive_seconds}" />
$ z; ]: ?- n; H9 B. X3 W - </bean>
4 S0 \, T* Q8 o; W - <!-- 注解式 -->! _3 |5 Y# H% ^ c) z
- <task:annotation-driven />
复制代码 三、在实现层Impl声明并注入:
; Z( t" x" `# S5 b' `9 ]- @Resource(name = "taskExecutor")
5 m1 a" h, U9 b, C" J g4 b) `; B - private TaskExecutor taskExecutor;
复制代码 0 |! o, U3 d8 M1 F
四、在方法里调用:
; J' M& p0 G1 J- X. q8 O- try {
4 ]1 ]7 ~ |0 J - taskExecutor.execute(new Runnable() {
( ~% [7 l( o% U1 C. ]1 e, _ - public void run() {
# n$ ]& v7 Z6 T2 z* S9 M - //这里编写处理业务代码
* _& Z) p$ \1 l0 R( a - 2 U: m& O& U8 V+ R
- }8 `1 [+ C* y* z& |. O
- });) v9 U% x6 f$ a G! S9 I
- } catch (Exception e) {
& c# b% e- R( s; C W - e.printStackTrace();
+ s' R8 z1 i$ M4 P1 H$ F2 R# W% C - }
复制代码 6 \. G+ I7 ^/ O( I* E+ L: L
9 w" r5 V* S9 m) i( t# y; M A+ Y |
|