Spring @Scheduled定时任务的fixedRate,fixedDelay,cron的作用和不同
Spring @Scheduled定时任务的fixedRate,fixedDelay,cron的作用和不同
一. 三种定时类型。
1.cron --@Scheduled(cron="0/5 * * * *?")
当时间达到设置的时间会触发事件。上面那个例子会每5秒执行一次。
- 2018/1/4 14:27:30
- 2018/1/4 14:27:35
- 2018/1/4 14:27:40
- 2018/1/4 14:27:45
- 2018/1/4 14:27:50
看字面意思容易理解,但是任务执行长度超过周期会怎样呢?
不多说,直接上图:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; @Component
public class MyProcessor{ DateFormat sdf = new SimpleDateFormat("HH:mm:ss"); int[] delays = new int[]{8,3,6,2,2}; int index = 0; @Scheduled(cron = "0/5 * * * * ?}") public void process() { try { if(index > delays.length - 1){ if(index == delays.length){ System.out.println("---------- test end at " + sdf.format(new Date()) + " ---------"); } index ++; return; }else{ System.out.println(index + ":start run at" + sdf.format(new Date())); } Thread.sleep(delays[index] * 1000); System.out.println(index + ":end run at " + sdf.format(new Date())); index ++; } catch (InterruptedException e) { e.printStackTrace(); } }
}
最新文章
- 俞敏洪在清华励志演讲
- mybatis实战:一、mybatis入门(配置、一些问题的解决)
- 在屏幕坐标和窗口坐标之见的转换
- 软件设计中的易用性
- Jetpack Compose——Text(文本)的使用
- Android出现没有资源包问题,Android打包出现的小问题汇总
- Service Principal 介绍
- R统计绘图
- Android: How to Capture Screen in Gingerbread(2.3中实现截屏)
- 关于vss的使用
- ext2和ext3的主要区别
- pgpool分析三
- 【JAVA】使用intellij IDEA将项目打包为jar包
- Https单向认证和双向认证 认识和区别
- python try:except: 捕获到的异常输出到 log文件
- python爬虫爬取网页信息
- idea各种中文乱码问题