springboot定时任务@Scheduled(1)

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

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值