SpringBoot多线程定时任务

项目最近要优化一下项目的定时采集功能,由之前的单线程采集升级为多线程异步执行,下面做个实现的介绍:

先看一下单线程的效果:

执行结果:

解释一下:小明由三个女朋友需要处理,每个女朋友都需要处理6秒, 每次过了三秒就需要再次处理一下三个女朋友(年轻真好!),但是这样小明也顶不住啊,所以如图所示:因为是一个线程所以小明只能一个个处理了,每个都处理了6秒钟。

多线程改造:

首先看看项目的连接池

再来看看:多线程执行的关键,ThreadPoolTaskScheduler,看看官方的说法JavaBean that allows for configuring a ThreadPoolExecutor in bean style (through its "corePoolSize", "maxPoolSize", "keepAliveSeconds", "queueCapacity" properties) and exposing it as a Spring TaskExecutor.

大意就是说 :ThreadPoolTaskScheduler是一个任务调度的线程池,有一些属性。。。

这时候方法或者类上面要加个注解 结果可以看到:每个任务都完成了异步执行,就是说不用等待线程执行完,再执行下一个任务;而是每隔2秒执行一次任务,只不过是换了个线程运行,因为上个线程需要执行6秒,小明已经等不及了每隔两秒就要处理女朋友。

spring确实很牛,把jdk和其他组件集成到一起,并且做了封装加强。本人菜鸟,有什么可以提出,相互交流

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值