定时任务|学习笔记

简介: 快速学习定时任务

开发者学堂课程【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点期间,每个整点都执行一次;

相关文章
|
4天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
15天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1309 5
|
1天前
|
监控 JavaScript Java
基于大模型技术的反欺诈知识问答系统
随着互联网与金融科技发展,网络欺诈频发,构建高效反欺诈平台成为迫切需求。本文基于Java、Vue.js、Spring Boot与MySQL技术,设计实现集欺诈识别、宣传教育、用户互动于一体的反欺诈系统,提升公众防范意识,助力企业合规与用户权益保护。
|
14天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1345 87
|
1天前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
3天前
|
弹性计算 安全 数据安全/隐私保护
2025年阿里云域名备案流程(新手图文详细流程)
本文图文详解阿里云账号注册、服务器租赁、域名购买及备案全流程,涵盖企业实名认证、信息模板创建、域名备案提交与管局审核等关键步骤,助您快速完成网站上线前的准备工作。
189 82
2025年阿里云域名备案流程(新手图文详细流程)