定时任务|学习笔记

简介: 快速学习定时任务

开发者学堂课程【SpringBoot 快速掌握 - 高级应用:定时任务】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/613/detail/9310


定时任务


内容介绍

一.定时内容

二.cron 表达式的书写


一.定时内容

项目开发中经常需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息。

Spring 为我们提供了异步执行任务调度的方式,提供 TaskExecutor 、TaskScheduler接口。

两个注解:EnableScheduling、@Scheduledcron 表达式:

Cron 表达式:

字段

允许值

允许的他叔字符

0-59

,-*/

0-59

,-*/

小时

0-23

,-*/

日期

1-31

,-*/?/Lwc

月份

1-12

,-*/

星期

0-7或 SUN-SAT 0,7 是SUN

,-*?/LC#

特殊字符

代表意义

枚举

-

区间

*

任意

/

步长

?

日/星期冲突匹配

L

最后

C

和 calendar 联系后计算过的值

#

星期,4#2,第2个星期三


测试

创建一个 service,

Name:scheduledservice

package com.atguigu.task.service;

importorg.springframework.scheduling.annotation.Scheduled;

import org.springframework.stereotype.Service;

@Service

public class ScheduledService {

/**

* second(秒),minute(分) , hour(时) , day of month(日) , month(月) , day of week(周几).* * ***MON-FRI

*/

@Scheduled(cron = "****MON-SAT")

public void hello(){

System.out.println( "hello ... ");

测试运行,查看整分钟会不会启动,注意观察控制台,发现控制台并没有打印,

原因就是一定要在 springboot04taskApplication 开启定时任务,

package com.atguigu.task;

import ...

nableAsync 1/开启异步注解功能

@EnableScheduling 1/开启基于注解的定时任务

@SpringBootApplication

public class Springboot04TaskApplication {

public static void main(String[ ] args) {

SpringApplication.run(Springboot04TaskApplication.class, args);

重启后,控制台有打印”hello”.


二.cron 表达式的书写

1.Cron表达式书写实例

package com.atguigu.task.service;

importorg.springframework.scheduling.annotation.Scheduled;

import org.springframework.stereotype.Service;

@Service

public class ScheduledService {

/**

second(秒) , minute (分) , hour(时) , day of month(日) , month(月) , day of week(周几).

*****MON-FRI

/@scheduled( cron = "***MON-SAT")

scheduled( cron = "0,1,2,3,4**** MON-SAT")

public void hello(){

System.out.println("he11o ... ");

2.-代表区间

package com.atguigu.task.service;

importorg.springframework.scheduling.annotation.Scheduled;

import org.springframework.stereotype.Service;

@Service

public class ScheduledService {

/**

second(秒) , minute (分) , hour(时) , day of month(日) , month(月) , day of week(周几).

*****MON-FRI

/@scheduled( cron = "***MON-SAT")

scheduled( cron = "0-4**** MON-SAT")

public void hello(){

System.out.println("he11o ... ");

3.“/”代表步长

/**

second(秒) , minute (分) , hour(时) , day of month(日) , month(月) , day of week(周几).

*****MON-FRI

/@scheduled( cron = "***MON-SAT")

//scheduled( cron = "0/4**** MON-SAT")//每四秒启动一次

public void hello(){

System.out.println("he11o ... ");

4.其他的一些表达式

* 【0 0/5 MN4,18* *?】每天14点整,和18点整,每隔5分钟执行一次

*【0 15 10 ? *1-6】每个月的周一至周六10:15分执行一次

*【0 0 2 ? * 6L】每个月的最后一个周六凌晨2点执行一次

*【0 0 2 Lw* ?】每个月的最后一个工作日凌晨2点执行一次

*【0 0 2-4 ? * 1#1】每个月的第一个周一凌晨2点到4点期间,每个整点都执行一次;

相关文章
|
Java 调度 数据库
快速上手Quartz实现定时任务
快速上手Quartz实现定时任务
1077 0
快速上手Quartz实现定时任务
|
1月前
|
监控 Java 调度
定时任务概述
定时任务概述
50 1
|
4月前
|
存储 消息中间件 移动开发
还在用crontab? 分布式定时任务了解一下
还在用crontab? 分布式定时任务了解一下
|
5月前
|
监控 Java 调度
若依修改定时任务,定时任务在系统监控的定时任务当中,宕机情况都不会去管,涉及到定时任务
若依修改定时任务,定时任务在系统监控的定时任务当中,宕机情况都不会去管,涉及到定时任务
|
Linux 数据库
定时任务
定时任务
156 0
|
关系型数据库 MySQL 调度
定时任务优化
简单描述一下定时任务的优化
145 0
|
负载均衡 Java 数据挖掘
定时任务实现的几种方式
定时任务实现的几种方式
295 1
|
Java Spring
使用定时任务 随着项目启动定时执行
使用定时任务 随着项目启动定时执行
325 0
|
开发者 微服务
项目中整合定时任务 | 学习笔记
快速学习 项目中整合定时任务
125 0
|
Java 调度 开发者
定时任务|学习笔记
快速学习定时任务
112 0