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. 如何设置Linux(Centos)系统定期任务(corntab详细用法)

    如何设置Linux(Centos)系统定期任务(crontab详细用法) 1.Crontab简介 Linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非 ...

  2. Django【部署】uwsgi+nginx

    uwsgi 遵循wsgi协议的web服务器 uwsgi的安装 pip install uwsgi uwsgi的配置 项目部署时,需要把settings.py文件夹下的: DEBUG = FALSE A ...

  3. vue项目使用 prerender-spa-plugin 预渲染

    由于项目要做seo优化,而用vue写成的spa页面谷歌浏览器等是抓取不到数据的.介于ssr和预渲染来说,后者相对来说要简单许多.所以采用了预渲染方式.采用插件prerender-spa-plugin使 ...

  4. Ocelot 资源汇总

    前言 最近一两年.NET Core的关注度持续上升, 微服务及云原生应用开发上采用.NET Core也越来越多,Ocelot 作为.NET Core平台下一款开源的API 网关开发库越来越得到社区的认 ...

  5. 微信小程序开发之多图片上传+服务端接收

    前言: 业务需求,这次需要做一个小程序同时选中三张图片一起上传到服务端,后端使用的.NET WEBAPI接收数据保存. 使用技术: 在这章中将会使用到微信小程序wx.uploadFile(Object ...

  6. .net工具类 分享一个简单的随机分红包的实现方式

    废话不多说,直接上代码 /// <summary> /// 分红包 /// </summary> public class RandomMoney { public Rando ...

  7. MySQL 笔记整理(11) --怎么给字符串字段加索引?

    笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 11) --怎么给字符串字段加索引? 日常工作中的登录系统,你很可能会使 ...

  8. commandArgument用于绑定一个传递的参数

    CommandArgument ='<%#Eval("spid")+","+Eval("piaohao")%>'

  9. tomcat部署项目后,war包是否可刪?war包存在必要性!

    在tomcat中webapps目錄上傳war包后,  对war解压时候. war不能在tomcat运行时删除,否则会删除自动解压的工程. 你可以停止tomcat后删除war. 当你重新部署的时候,如果 ...

  10. DRDS分布式SQL引擎—执行计划介绍

    摘要: 本文着重介绍 DRDS 执行计划中各个操作符的含义,以便用户通过查询计划了解 SQL 执行流程,从而有针对性的调优 SQL. DRDS分布式SQL引擎 — 执行计划介绍 前言 数据库系统中,执 ...