当前位置:   article > 正文

springboot定时任务@Scheduled(1)_@scheduled(fixedrate = 2000)

@scheduled(fixedrate = 2000)

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

1.在springboot启动类上配置@EnableScheduling 这个一定要加上;否则,不会定时启动任务!

2.在你的方法上添加@Scheduled

@Scheduled中的参数说明:

@Scheduled(fixedRate=2000):上一次开始执行时间点后2秒再次执行; @Scheduled(fixedDelay=2000):上一次执行完毕时间点后2秒再次执行; @Scheduled(initialDelay=1000, fixedDelay=2000):第一次延迟1秒执行,然后在上一次执行完毕时间点后2秒再次执行; @Scheduled(cron=“* * * * * ?”):按cron规则执行。

在线Cron表达式生成器:http://cron.qqe2.com/

通过看 @Scheduled源码可以看出它支持多种参数:

(1)cron:cron表达式,指定任务在特定时间执行;

(2)fixedDelay:表示上一次任务执行完成后多久再次执行,参数类型为long,单位ms;

(3)fixedDelayString:与fixedDelay含义一样,只是参数类型变为String;

(4)fixedRate:表示按一定的频率执行任务,参数类型为long,单位ms;

(5)fixedRateString: 与fixedRate的含义一样,只是将参数类型变为String;

(6)initialDelay:表示延迟多久再第一次执行任务,参数类型为long,单位ms;

(7)initialDelayString:与initialDelay的含义一样,只是将参数类型变为String;

(8)zone:时区,默认为当前时区,一般没有用到。

springboot定时任务的单线程和多线程


scheduler的pool-size是ScheduledExecutorService线程池,默认为1。默认为单线程

@Component

public class SendMessageTask {

@Autowired

private OrderService orderService;

//@Scheduled(initialDelay = 10000, fixedDelay = 10000)

//@Scheduled(cron = “”),可以通过cron参数设定要出发的按顺序,秒,时,分,天,月,星期,年(可选);前六个是必须的

//重点:年份(1970-2099)——@Scheduled是不支持的,spring quartz支持

@Scheduled(cron = “0/5 * * * * ?”) //每5秒执行一次

public void getMessageId(){

String messageId = orderService.getMessageIdById(“1”);

//单线程 pool-1-thread-1

System.out.println(Thread.currentThread().getName()+" "+new Date()+"messageId = "+messageId);

}

}

我们看打印出来的结果

pool-1-thread-1 Sun Sep 30 17:39:10 CST 2018messageId = am_01

pool-1-thread-1 Sun Sep 30 17:39:15 CST 2018messageId = am_01

…每5秒重复以上

多线程的实现

我们只需用调用这个方法显式的设置一个ScheduledExecutorService就可以达到并发的效果了。我们要做的仅仅是实现SchedulingConfigurer接口,重写configureTasks方法就OK了;

感受:

其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。

特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。

也祝愿各位同学,都能找到自己心动的offer。

分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档

拿到字节跳动offer后,简历被阿里捞了起来,二面迎来了P9"盘问"

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
hBfRVf0o-1714669106012)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/728212
推荐阅读
相关标签
  

闽ICP备14008679号