1.摘要
阅读整篇文章大约需要3分钟,主要观点如下
SpringBoot调度实用介绍
2.简介
在实际的业务开发过程中,经常需要定时任务来帮助你完成一些任务,比如每天早上6:00生成销售报表,每天晚上23:00清理脏数据。
如果你目前正在使用SpringBoot开发项目,完成这些任务将非常容易!
SpringBoot默认已经完成了相关定时任务组件的配置,只需要添加相应的注解Scheduled即可实现任务调度!
3.安排练习
31.pom包配置
只需将SpringBootStarter包添加到您的Pom包中即可!
lt;依赖项>--springboot测试--gt;lt;依赖关系gt;lt;groupIdgt;orgspringframeworkbootlt;/groupIdgt;lt;artifactIdgt;spring-boot-starter-testlt;/artifactIdgt;lt;范围gt;测试lt;/范围gt;lt;/依赖gt;lt;/依赖gt;32。入门课程允许预约。
要打开计时,请将EnableScheduling添加到启动类中。
SpringBootApplicationEnableSchedulingpublicclassScheduleApplication33.创建计划任务
SpringScheduler支持四种形式的作业调度!
fixedRate固定速率执行(例如每5秒一次)
fixedDelay以固定延迟执行(例如,在最后一次成功调用后2秒执行)
初始延迟初始延迟操作。例如,它在任务启动后运行5秒,然后以固定的频率或间隔运行。
cron使用cron表达式运行计划任务
331.固定利率的实施
您可以使用FixedRate参数以固定时间间隔运行任务,如下例所示。
ComponentpublicclassSchedulerTask,当前时间为34;ThreadcurrentThreadgetName,dateFormatformatnewdate;控制台输出效果
修复延迟任务,当前线程Scheduled-thread-1,当前时间为2020-12-1511:46:00333.初始延迟任务
您可以通过使用initialDelay参数和fixedRate或fixedDelay来实现初始延迟任务调度。
ComponentpublicclassSchedulerTask,当前时间为34;ThreadcurrentThreadgetName,dateFormatformatnewdate;控制台输出效果
Cron表达式,当前线程Scheduled-thread-1,时间当前为2020-12-1511:46:06异步运行计划任务。
在介绍定时任务的异步执行之前,我们先来看一个例子。
在下面的示例中,我们创建了一个每2秒运行一次的计划任务,大约需要3秒。我们来执行结果吧?
ComponentpublicclassAsyncScheduledTask:当前时间为34;ThreadcurrentThreadgetName,dateFormatformatnewDate;捕获InterruptedExceptione控制台输出
固定延迟任务,当前线程SimpleAsyncTaskExecutor-1:时间现在是2020-12-1518:55:26336028固定延迟任务,当前线程SimpleAsyncTaskExecutor-3:时间现在是2020-12-1518:553336030任务的执行频率不正确。它取决于方法内的时间并且并行运行!
35.自定义任务线程池
默认情况下,计划任务运行在Spring创建的默认大小为1的线程池中,但您也可以通过实现SchedulingConfigurer类来自定义线程池!
自定义线程池的一个示例是
配置公共类SchedulerConfig实现SchedulingConfigurer。让我们启动服务并查看示例cron作业的调度效果。
Cron表达式,当前线程Scheduled-thread-1,当前时间为2020-12-1520:46:00Cron表达式,当前线程Schedule-thread-2,当前时间为2020-12-1520:46:06Cron表达式,当前线程33360ched-thread-3,当前时间为2020-12-1520:46:12Cron表达式,当前线程ched-thread-4,当前时间为2020-12-1520:46:18当前线程名称已更改为用户定义的Schedule。线程的前缀!
4.总结
本文主要分享Spring调度应用实例。对于单个应用来说,使用SpringBoot内置的预留注解可以解决大部分业务需求。上手非常简单!
5.参考资料
1.SpringBootSchedule使用及原理分析
关于shedule用法和Shedule音标的相关题已解完毕,诸位网友记得持续关注本站。
No Comment