1.启动类新增注解 @EnableScheduling

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.scheduling.annotation.EnableScheduling; /**
* @describe: 定时任务启动类 EnableScheduling:发现注解@Scheduled的任务并后台执行。
* @author: zhucw
* @date: 2019/3/11 10:23
*/
@SpringBootApplication
@EnableDiscoveryClient
@EnableScheduling
public class TaskApplication {
public static void main(String[] args) {
SpringApplication.run(TaskApplication.class, args);
} }

2.定时任务类

package com.wdlcoud.rps.task.tasks;

import com.wdcloud.rps.utils.AppUtil;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; /**
/**
* @describe: 定时任务
* @author: zhuchunwang
* @date: 2019/3/11 10:24
*/
@Component
public class AppTask { /**
* 1分钟执行一次
*/
@Scheduled(fixedDelay = 60 * 1000)
public void testOneMinute(){
System.out.println("===="+ AppUtil.getFormatDate() +"===>>>=testOneMinute执行");
}
/**
* 10秒执行一次
*/
@Scheduled(fixedDelay = 10 * 1000)
public void testTenMinute(){
System.out.println("===="+AppUtil.getFormatDate()+"===>>>=testTenSenConds执行");
} /**
* cron表达式
* 每天14点29执行
*/
@Scheduled(cron = "0 32 14 ? * *")
public void testTask1432() {
System.out.println("===="+AppUtil.getFormatDate()+"===>>>=testTask1432执行");
} /**
*cron规则:
* 秒(0~59)
* 分钟(0~59)
* 小时(0~23)
* 天(月)(0~31,但是你需要考虑你月的天数)
* 月(0~11)
* 天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
* 年份(1970-2099)
*
* 【0 0 10,14,16 * * ?】 每天上午10点,下午2点,4点
* 【0 0/30 9-17 * * ?】 朝九晚五工作时间内每半小时
* 【0 0 12 ? * WED 】表示每个星期三中午12点
* 【0 0 12 * * ?】每天中午12点触发
* 【0 15 10 ? * *】每天上午10:15触发
* 【0 15 10 * * ?】每天上午10:15触发
* 【0 15 10 * * ? *】 每天上午10:15触发
* 【0 15 10 * * ? 2005】2005年的每天上午10:15触发
* 【0 * 14 * * ?】 在每天下午2点到下午2:59期间的每1分钟触发
* 【0 0/5 14 * * ?】 在每天下午2点到下午2:55期间的每5分钟触发
* 【0 0/5 14,18 * * ?】 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
* 【0 0-5 14 * * ?】在每天下午2点到下午2:05期间的每1分钟触发
* 【0 10,44 14 ? 3 WED】每年三月的星期三的下午2:10和2:44触发
* 【0 15 10 ? * MON-FRI】 周一至周五的上午10:15触发
* 【0 15 10 15 * ?】每月15日上午10:15触发
* 【0 15 10 L * ?】每月最后一日的上午10:15触发
* 【0 15 10 ? * 6L】每月的最后一个星期五上午10:15触发
* 【0 15 10 ? * 6L 2002-2005】 2002年至2005年的每月的最后一个星期五上午10:15触发
* 【0 15 10 ? * 6#3】每月的第三个星期五上午10:15触发
*/ }

3.cron 规则

  • 秒(0~59)
  • 分钟(0~59)
  • 小时(0~23)
  • 天(月)(0~31,但是你需要考虑你月的天数)
  • 月(0~11)
  • 天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
  • 年份(1970-2099)

4.cron 示例

  • 【0 0 10,14,16 * * ?】 每天上午10点,下午2点,4点
  • 【0 0/30 9-17 * * ?】 朝九晚五工作时间内每半小时
  • 【0 0 12 ? * WED 】表示每个星期三中午12点
  • 【0 0 12 * * ?】每天中午12点触发
  • 【0 15 10 ? * *】每天上午10:15触发
  • 【0 15 10 * * ?】每天上午10:15触发
  • 【0 15 10 * * ? *】 每天上午10:15触发
  • 【0 15 10 * * ? 2005】2005年的每天上午10:15触发
  • 【0 * 14 * * ?】 在每天下午2点到下午2:59期间的每1分钟触发
  • 【0 0/5 14 * * ?】 在每天下午2点到下午2:55期间的每5分钟触发
  • 【0 0/5 14,18 * * ?】 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
  • 【0 0-5 14 * * ?】在每天下午2点到下午2:05期间的每1分钟触发
  • 【0 10,44 14 ? 3 WED】每年三月的星期三的下午2:10和2:44触发
  • 【0 15 10 ? * MON-FRI】 周一至周五的上午10:15触发
  • 【0 15 10 15 * ?】每月15日上午10:15触发
  • 【0 15 10 L * ?】每月最后一日的上午10:15触发
  • 【0 15 10 ? * 6L】每月的最后一个星期五上午10:15触发
  • 【0 15 10 ? * 6L 2002-2005】 2002年至2005年的每月的最后一个星期五上午10:15触发
  • 【0 15 10 ? * 6#3】每月的第三个星期五上午10:15触发

5.fixedDelay 和 fixedRate的区别

比如都是5*1000 5秒

  • fixedDelay 是不管上次任务执行多长时间 下次任务都在5秒后执行
  • fixedRate 上次任务如果执行花了3秒 那下次就在2秒后执行,上次任务花了6秒 下次任务在上次任务结束后马上就执行

6.fixedDelay 和 fixedRate 怎么使用配置文件?

使用它们的String类型

@Scheduled(fixedRateString = "${task.fixed.resourceTask}")

7.cron 使用配置文件

@Scheduled(cron =  "${task.cron.testCron}")

springboot 定时任务的更多相关文章

  1. springboot 定时任务部署至linux服务器上后会执行两次问题

    springboot定时任务在本地运行时,正常执行且只执行一次,但是在maven打包成war包,部署至linux服务器上之后,定时任务奇怪的执行了两次. 由于未做负载均衡,所以可以先排除是因为多台服务 ...

  2. Spring boot(三) springboot 定时任务

    这个不多说,springboot 定时任务非常简单就可以实现了. 30s运行一次 , @Scheduled(cron="0,30 * * * * ?") 通过这个控制定时时间 cr ...

  3. springboot定时任务之旅

    springboot定时任务 假设场景:单体应用的定时任务,假设我们已经有了一个搭建好的springboot应用,但是需要添加一个定时执行的部分(比如笔者遇到的是定时去请求一个接口数据来更新某个表), ...

  4. SpringBoot定时任务@Scheduled

    SpringBoot定时任务主要由两个注解完成. @Scheduled加在方法上面. @EnableScheduling加在类上面.可以是Application类,也可以是@Component类,还可 ...

  5. 小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_41、SpringBoot定时任务schedule讲解

    笔记 1.SpringBoot定时任务schedule讲解     简介:讲解什么是定时任务和常见定时任务区别 1.常见定时任务 Java自带的java.util.Timer类            ...

  6. SpringBoot学习笔记(七):SpringBoot使用AOP统一处理请求日志、SpringBoot定时任务@Scheduled、SpringBoot异步调用Async、自定义参数

    SpringBoot使用AOP统一处理请求日志 这里就提到了我们Spring当中的AOP,也就是面向切面编程,今天我们使用AOP去对我们的所有请求进行一个统一处理.首先在pom.xml中引入我们需要的 ...

  7. SpringBoot定时任务 - 集成quartz实现定时任务(单实例和分布式两种方式)

    最为常用定时任务框架是Quartz,并且Spring也集成了Quartz的框架,Quartz不仅支持单实例方式还支持分布式方式.本文主要介绍Quartz,基础的Quartz的集成案例本,以及实现基于数 ...

  8. SpringBoot定时任务 - 什么是ElasticJob?如何集成ElasticJob实现分布式任务调度?

    前文展示quartz实现基于数据库的分布式任务管理和job生命周期的控制,那在分布式场景下如何解决弹性调度.资源管控.以及作业治理等呢?针对这些功能前当当团队开发了ElasticJob,2020 年 ...

  9. SpringBoot定时任务 - 开箱即用分布式任务框架xxl-job

    除了前文介绍的ElasticJob,xxl-job在很多中小公司有着应用(虽然其代码和设计等质量并不太高,License不够开放,有着个人主义色彩,但是其具体开箱使用的便捷性和功能相对完善性,这是中小 ...

  10. 带着新人学springboot的应用10(springboot+定时任务+发邮件)

    接上一节,环境一样,这次来说另外两个任务,一个是定时任务,一个是发邮件. 1.定时任务 定时任务可以设置精确到秒的准确时间去自动执行方法. 我要一个程序每一秒钟说一句:java小新人最帅 于是,我就写 ...

随机推荐

  1. Storm入门(七)可靠性机制代码示例

    一.关联代码 使用maven,代码如下. pom.xml  参考 http://www.cnblogs.com/hd3013779515/p/6970551.html MessageTopology. ...

  2. sql的基本语法

    一. 数据库 1.查询服务器上有哪些数据库 show databases; 2.新建数据库 create database TestSqlSugar; 3.进入数据库 use TestSqlSugar ...

  3. mpvue小程序开发之 城市定位

    背景: 在进行小程序开发时,有一个定位城市的需求,下面就来讲讲怎么实现这个功能的吧 解决方案: 小程序的wx.getLocation()获得是经纬度并不包含地名,所以要通过经纬度用相应的地图转换出地名 ...

  4. 第一周 IP通信基础学习回顾

    这周的课程首先让我们学习了计算机网络概述,了解计算机网络的定义和功能分别是:资源共享,信息传输与集中处理,负载均衡与分布处理,综合信息服务.同时也对计算机网络的演进,计算机网络的分类,计算机网络的性能 ...

  5. sklearn中的Pipeline

    在将sklearn中的模型持久化时,使用sklearn.pipeline.Pipeline(steps, memory=None)将各个步骤串联起来可以很方便地保存模型. 例如,首先对数据进行了PCA ...

  6. ResDrawableImgUtil【根据图片名称获取resID值或者Bitmap对象】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 根据图片名称获取项目的res/drawable-xxdhpi中相应资源的ID值以及bitmap值的封装类. 效果图 代码分析 根据图 ...

  7. Android 性能测试优质实践汇总

    这两天把testerhome上的关于Android 性能测试的精品文章看了一遍,很有收获,学习到了Android 性能测试该关注的一些细节.我所说的“精品”是指对我自己有启发的文章,可以被自己运用起来 ...

  8. lib和dll文件的初了解

    lib,dll这两样东西在许多编程书中都很少出现,但实际工程中,这两样东西的作用确实非常重要,我觉得c++程序员都有必要了解这两样东西. 首先总共有 动态链接 和 静态链接 这两种链接方式 |静态链接 ...

  9. Vue全家桶(Vue-cli、Vue-route、vuex)

    摘要 学习本篇之前要具备一定的vue基础知识,可以先看一下Vue基础(环境配置.内部指令.全局API.选项.内置组件) 1.Vue-cli Vue-cli是vue官方出品的快速构建单页应用的脚手架,这 ...

  10. jquery快速入门(三)

    捕获内容和属性 1.DOM 操作 获得内容 - text().html() 以及 val() text() - 设置或返回所选元素的文本内容,如果不带值则是返回值,如果带值则是修改值,如:$('p') ...