标签:学成 Java public 任务 添加 线程 3.3 scheduler day19
3.3 Spring Task并行任务
3.3.1 需求分析
在项目通常是需要多个不同的任务并行去执行。
本节实现Spring Task并行执行任务的方法。 3.3.2 配置异步任务
创建异步任务配置类,需要配置线程池实现多线程调度任务。
[AppleScript] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
@Configuration @EnableScheduling public class AsyncTaskConfig implements SchedulingConfigurer , AsyncConfigurer { / / 线程池线程数量
private int corePoolSize = 5 ;
@Bean
public ThreadPoolTaskScheduler taskScheduler ( )
{
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler ( ) ;
scheduler.initialize ( ) ; / / 初始化线程池
scheduler.setPoolSize ( corePoolSize ) ; / / 线程池容量
return scheduler;
}
@Override
public Executor getAsyncExecutor ( ) {
Executor executor = taskScheduler ( ) ;
return executor;
}
@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler ( ) {
return null;
}
@Override
public void configureTasks ( ScheduledTaskRegistrar scheduledTaskRegistrar ) {
scheduledTaskRegistrar.setTaskScheduler ( taskScheduler ( ) ) ;
} }
|
将@EnableScheduling添加到此配置类上,SpringBoot启动类上不用再添加@EnableScheduling 3.3.3 测试
通过测试发现两个任务由不同的线程在并行执行,互不影响。
4.1 需求分析
定时任务发送消息流程如下:
1、每隔1分钟扫描一次任务表。
1、定时任务扫描task表,一次取出多个任务,取出超过1分钟未处理的任务
2、考虑订单服务可能集群部署,为避免重复发送任务使用乐观锁的方式每次从任务列表取出要处理的任务
3、任务发送完毕更新任务发送时间
关于任务表的添加:
正常的流程是订单支付成功向更新订单支付状态并向任务表写入“添加选课任务”。
目前订单支付功能没有开发,采用手动向任务表添加任务。 |
|
标签:学成,Java,public,任务,添加,线程,3.3,scheduler,day19
来源: https://blog.csdn.net/czbkzmj/article/details/98848912
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。