任务调度快速入门

本文介绍了任务调度在系统开发中的重要性,如电商系统发放优惠券和交易数据结算等场景。提到了传统任务调度框架如SpringTask和分布式任务调度技术如xxl-job,elastic-job。SpringTask作为广泛使用的定时任务框架,其使用流程包括启用调度、编写任务调度类和方法,并通过Cron表达式设定执行时机。Cron表达式由6或7个域组成,用于定义任务执行时间,文章还提供了在线测试工具和Cron表达式的详细说明。

一、什么是任务调度

在开发系统的时候,有时需要在特定的时间执行一些任务,或者周期性的执行一些任务。比如: 某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。 某电商系统需要在每天凌晨0:10结算前一天的交易数据。 每天凌晨删除过期的垃圾信息。 每隔10分钟处理一次未支付的订单。 每隔10s同步MySQL中的数据到ElasticSearch

二、任务调度的相关技术

目前任务调度的技术非常的多,除了一些传统的任务调度框架以外,还有分布式任务调度技 术; 传统的任务调度框架 Spring Task,Quartz 分布式任务调度技术 xxl-job,elastic-job

三、Spring Task简介

Spring Task是一个功能强大的任务调度框架,它可以满足很多复杂的调度需求,可以在JavaSE项目 中使用,也可以在JavaEE的项目中使用,可以方便的和Spring,Spring Boot进行整合。是目前使用范围 最广的定时任务框架。单体应用以及大型互联网项目中都可以看到他的身影。 Spring Task是spring提供的一套任务调度技术,在使用的时候除了需要引入spring相关的依赖包以 外,不需要导入额外的依赖,使用简单

四、使用流程

1.创建项目时引入web依赖,因web依赖已经包含了spring中的相关依赖,不需其他依赖

2.创建启动类并且在上面添加@EnableScheduling注解
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class})
@EnableScheduling
public class HuiKeApplication implements CommandLineRunner {

    @Autowired
    private ITbActivityService activityService;

    public static void main(String[] args){
        SpringApplication.run(HuiKeApplication.class, args);
    }
}
3.编写一个任务调度类,将任务调度类交给Spring管理
3.1 编写任务调度方法,方法必须是无返回值,无形参 3.2 在方法上指定注解@Scheduled,通过corn属性指定corn表达式
@Component
@Slf4j
public class MyTask {

    @Scheduled(cron = "0 * * * * ?")
    public void task01(){
        System.out.println("i love you");
    }
}
4.启动服务,Spring会根据corn表达式自动调用任务

五、Cron表达式

1.概念和组成

cron表达式是任务调度中的一种通用表达式,所有任务调度技术都支持,是用来描述任务的执行 时机;

cron表达式是由6部分或者7部分组成,有些框架支持7部分,有些框架支持6部分;每个部分称为 一个域; 如果是由7个域构成,对应的是:秒 分 时 日 月 周 年; 如果是由6个域构成,对应的是:秒 分 时 日 月 周;

2.cron字符

* : 任意

? : 放弃指定, 只会出现在 日 , 周

, : 枚举 , cron = "1,2,3,4,5 * * * * ?"

- : 范围 , 1-5 从1到5每秒执行一次

/ : 周期性执行, 0/5 , 从0开始每隔5秒执行一次.

3.Cron在线测试工具

http://www.jsons.cn/quartzcheck/

4.Cron细节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值