首页>>后端>>SpringBoot->springboot任务调度?

springboot任务调度?

时间:2023-12-08 本站 点击:0

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

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

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

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组件


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/SpringBoot/18843.html