网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

SpringBoot整合SpringTask如何实现定时任务功能?

这篇文章将为大家详细讲解有关SpringBoot整合SpringTask如何实现定时任务功能?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联是一家专业的成都网站建设公司,我们专注成都网站建设、成都网站设计、网络营销、企业网站建设,外链1元广告为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。

Cron表达式

Cron表达式是一个字符串,包括6~7个时间元素,在SpringTask中可以用于指定任务的执行时间。

Cron的语法格式

Seconds Minutes Hours DayofMonth Month DayofWeek

Cron格式中每个时间元素的说明

时间元素 可出现的字符 有效数值范围
Seconds , - * / 0-59
Minutes , - * / 0-59
Hours , - * / 0-23
DayofMonth, - * / ? L W 0-31
Month , - * / 1-12
DayofWeek , - * / ? L # 1-7或SUN-SAT

Cron格式中特殊字符说明

字符 作用  举例
, 列出枚举值 在Minutes域使用5,10,表示在5分和10分各触发一次
- 表示触发范围 在Minutes域使用5-10,表示从5分到10分钟每分钟触发一次
* 匹配任意值 在Minutes域使用*, 表示每分钟都会触发一次
/ 起始时间开始触发,每隔固定时间触发一次 在Minutes域使用5/10,表示5分时触发一次,每10分钟再触发一次
? 在DayofMonth和DayofWeek中,用于匹配任意值 在DayofMonth域使用?,表示每天都触发一次
# 在DayofMonth中,确定第几个星期几 1#3表示第三个星期日
L 表示最后 在DayofWeek中使用5L,表示在最后一个星期四触发
W 表示有效工作日(周一到周五) 在DayofMonth使用5W,如果5日是星期六,则将在最近的工作日4日触发一次

整合SpringTask

由于SpringTask已经存在于Spring框架中,所以无需添加依赖。

配置SpringTaskConfig类

只需要在配置类中添加一个@EnableScheduling注解即可开启SpringTask的定时任务能力。

@Configuration
@EnableScheduling
public class SpringTaskConfig {
}

添加CallPaySpringTask类来执行定时任务

package ltd.hanzo.mall.task;

import lombok.extern.slf4j.Slf4j;
import ltd.hanzo.mall.service.TaskService;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;

/**
 * @Author 皓宇QAQ
 * @email 2469653218@qq.com
 * @Date 2020/5/19 23:33
 * @link https://github.com/Tianhaoy/hanzomall
 * @Description: 每天定时扫描订单 未支付状态的单子发送邮件提醒支付
 */
@Slf4j
@Component
public class CallPaySpringTask {

 @Resource
 private TaskService taskService;

 /**
 * cron表达式:Seconds Minutes Hours DayOfMonth Month DayOfWeek [Year]
 */
 @Scheduled(cron = "0 0 5 * * ?")
 private void callPay() {
 log.info("通过SpringTask开始批量发送待支付订单邮件提醒");
	//这里调用自己的定时任务接口--我这里调用的是发送待支付订单邮件的接口
 taskService.callPayOrders();
 }
}

关于SpringBoot整合SpringTask如何实现定时任务功能?就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


文章标题:SpringBoot整合SpringTask如何实现定时任务功能?
文章来源:http://bjjierui.cn/article/jdchso.html

其他资讯