springboot任务调度?

SpringBoot 2.2.5 整合Xxl-Job,实现各种任务调度

前言:该博客主要携坦是记录自己学习的过程,方便以后查看,当然也希望能够帮到大家。

后记:本次分享到此结束,本人水平有限,难免有错误或遗漏之处,望大家指正和团改谅解,欢迎评论留言塌隐判。

springboot任务调度?  第1张

Spring Scheduling -- 任务调度

文档:

Quartz官网:

cron表达式生成器:

Spring Task 对比 Spring Quartz

1、Spring Task默认单线程串行洞春冲执行任务,多任务时若某个任务执行时间过长,后续任务会无法及时执行

2、Quartz采用多线程,下一个调度时间到达时,会另起一个线程执行调度,不会发生阻塞问题,但调度过多时可纳歼能导致数据处理异常

3、Spring Task抛出异常后,同一个任务后续不再触发

4、Spring Quartz抛出异常后,同一个任务后续仍然会触发

1-0、SpringMVC配置:森袜Spring Bean配置

1-1、SpringBoot配置:给主类增加注解 @EnableScheduling

2、定义任务

1、配置Maven依赖

2、Spring Bean配置

层次结构:调度器 - 触发器 - 任务

SpringBoot任务调度

SpringBoot提供了任务调度功能,可以指定启动服务器立刻执行某些任务逻辑,或指定时间调用某些任务逻扮培辑。

SpringBoot提供了 ApplicationRunner 和 CommandLineRunner 接口,实现任何一个即可。

1. ApplicationRunner

2. CommandLineRunner

总结:多个任务可以使用@Order定义调度顺序,从1,2,3,4...;多个任务采用单线程同步模式执行。

如果需要多个任务需要异步执行调用,可以使物凳用 @EnableAsync 和 @Async 标记。

提示:在需要的时机注入MyTask3任务对象,调用run1、run2方法。

在以前经常使用罩缺旅 Quartz 工具来实现任务调度。后期Spring框架引入 Schedule 任务模块,实现了任务调度功能。( Spring+Quartz 、 Spring Schedule )

1. Spring Schedule模块应用

cron表达式( 由7部分构成,格式为“秒 分  时  日  月  星期  年” )

2. Spring Quartz整合应用

编写任务组件

配置JobDetail、CronTrigger、ScheduleFactoryBean组件

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23 14:27
下一篇 2023-09-23 14:27

相关推荐

发表回复

登录后才能评论