定时任务(corn表达式)

1 需求概述

用户创建支付订单之后,长时间没有支付,需要将订单关闭。现在存在如下的问题

    如何确定为长时间未支付的订单:15分钟后 如何自动执行?:定时任务

2 定时任务概述

在实际项目开发中,除了Web应用、SOA服务外,还有一类不可缺少的,那就是定时任务调度。定时任务的场景可以说非常广泛:

    某些网站会定时发送优惠邮件; 银行系统还款日信用卡催收款; 某些应用的生日祝福短信等。

那究竟何为定时任务调度,一句话概括就是:在指定的时间规则下,自动执行java方法

定时任务有很多种实现方式:

    timer 基于quartz框架 基于Spring task的框架 分布式定时任务调度:xxl-job

3 入门案例

1)引导类

引导类上加入注解

@EnableScheduling:开启定时任务支持

2)定时任务类

注意:真实的定时任务代码是写在定时任务类的方法里的,一般都直接调用service。定时任务类写在task包下

4 corn表达式

对于定时任务,我们使用的时候主要是注重两个方面,一个是定时任务的业务,另一个就是Cron表达式。

Cron 表达式支持到六个域

名称 是否必须 允许值 特殊字符 秒 是 0-59 , - * / 分 是 0-59 , - * / 时 是 0-23 , - * / 日 是 1-31 , - * ? / L W C 月 是 1-12 或 JAN-DEC , - * / 周 是 1-7 或 SUN-SAT , - * ? / L C #

月份和星期的名称是不区分大小写的。FRI 和 fri 是一样的。 域之间有空格分隔

经验分享 程序员 微信小程序 职场和发展