SpringBoot整合SpringTask实现定时任务
2020-06-05 06:59
375 查看
前因
温馨提醒:阅读本文需要6分钟
半藏商城中会有一些用户提交了订单但是一直没有支付的情况,之前我是通过quartz定时任务每天的5点扫描未支付订单然后读取用户的邮箱地址发送邮件提醒用户尽快支付。这次我是采用Spring中自带的SpringTask来进行定时任务。
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(); } }
还有一些查找订单信息的service层 mapper层代码就不贴出了,根据自己的业务进行开发就可以。主要是分享流程,代码实现并不难。
小结
到此为止,整个通过SpringTask定时任务发送邮件信息的流程就介绍完毕了,知识只有分享出来才有价值。如果有问题的话,可以在关于我的页面,通过我的邮箱联系我进行探讨。
相关文章推荐
- springboot整合Quartz实现动态配置定时任务
- springboot整合定时任务task
- springboot整合Quartz实现动态配置定时任务
- spring boot整合quartz实现多个定时任务
- SpringBoot之旅 -- 定时任务两种(Spring Schedule 与 Quartz 整合 )实现
- springboot整合quartz实现定时任务
- SpringBoot之旅 -- 定时任务两种(Spring Schedule 与 Quartz 整合 )实现
- mall整合SpringTask实现定时任务的方法示例
- SpringBoot 整合定时任务 task
- springboot整合Quartz实现腾讯分_分彩源码出_售动态配置定时任务
- SpringBoot整合Quartz实现定时任务(单任务、多任务)
- spring boot框架整合quartz实现定时任务
- spring boot 整合 quartz 集群环境 实现 动态定时任务配置【原】
- springboot整合Quartz实现动态配置定时任务
- spring boot task实现动态创建定时任务的方法
- Spring整合TimerTask实现定时任务调度
- springboot整合Quartz实现动态配置定时任务
- SpringMVC整合Quartz实现定时任务和Spring自带Task定时任务
- springboot整合Quartz实现动态配置定时任务
- Springboot整合quartz实现动态管理定时任务