springboot2.x整合定时任务和异步任务

news/2024/11/7 21:12:35/

1.定时任务schedule

  • springboot使用注解方式开启定时任务

    • 启动类加上@EnableScheduling开启定时任务自动扫描
    • 定时任务业务类加注解@Component被容器扫描
    • 定时执行的方法加上注解@Scheduled(fixedRate = 10000)
  • 定时规则

    • @Scheduled(cron = “* * * * * *”):定时任务表达式,分别表示秒分时日月周
    • @Scheduled(fixedRate = 1000):定时1秒执行一次
    • @Scheduled(fixedDelay = 1000):上一次代码执行结束后1秒再执行;假如代码需要执行1秒,也就是说每2秒执行一次
  • 代码示例

    package com.gen.schedule;import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;import java.time.LocalDateTime;@Component
    public class CustomSchedule {@Scheduled(cron = "* * * * * *")public void testSchedule() {System.out.println(LocalDateTime.now());}}
    

2.异步任务

  • springboot使用注解方式开启异步任务

    • 启动类加上@EnableAsync注解开启功能自动扫描
    • 定义异步任务类并使用@Component被容器扫描,异步方法加上@Async
    • 如果需要异步类返回结果,增加Future返回结果AsyncResult,调用处拿返回结果时,判断是否完成isDone()
  • 代码示例

    • 异步类

      package com.gen.async;import org.springframework.scheduling.annotation.Async;
      import org.springframework.scheduling.annotation.AsyncResult;
      import org.springframework.stereotype.Component;import java.util.concurrent.Future;@Component
      public class CustomAsync {@Asyncpublic void test1() {try {Thread.sleep(1000L);System.out.println("异步任务test1");} catch (InterruptedException e) {e.printStackTrace();}}@Asyncpublic Future<String> test2() {try {Thread.sleep(2000L);System.out.println("异步任务test2");} catch (InterruptedException e) {e.printStackTrace();}return new AsyncResult("任务返回值");}}
      
    • controller调用

      @Autowired
      private CustomAsync customAsync;@GetMapping("test")
      public void test() {this.customAsync.test1();Future<String> stringFuture = this.customAsync.test2();while (true) {if (stringFuture.isDone()) {try {System.out.println(stringFuture.get());} catch (Exception e) {e.printStackTrace();} finally {break;}}}
      }
      

http://www.ppmy.cn/news/147900.html

相关文章

什么是 IMU?惯性测量单元工作和应用

术语IMU代表“惯性测量单元”&#xff0c;我们用它来描述测量工具的集合。当安装在设备中时&#xff0c;这些工具可以捕获有关设备移动的数据。IMU 包含加速度计、陀螺仪和磁力计等传感器。 IMU 如何工作&#xff1f; IMU 可以测量各种因素&#xff0c;包括速度、方向、加速度、…

【医学图像】图像分割系列.4

介绍几篇使用Transformer结构做医学图像分割的论文&#xff1a;CASTformer&#xff08;NeuralPS2022&#xff09;&#xff0c;PHNet&#xff08;arXiv2023&#xff09;。 Class-Aware Adversarial Transformers for Medical Image Segmentation, NeuralPS2022 解读&#xff1a…

npm发包/发布群组过程记录

目录 创建群组 本地发包 1、初始化本地的包到群组 2、 登录npm账号 3、设置公开库 4、发布到npm上 5、升级更新发布 创建群组 打开npm的网站&#xff0c;登录个人账户密码--->点击右侧上方个人的头像--->在下拉框点击【add Organization】 接下来会出现一个添加群…

amd服务器和intel服务器性能,重量级对抗!服务器CPU之Intel VS AMD

小结&#xff1a; 一般来说&#xff0c;Opteron的运算能力在进行3D建模时表现最为优异&#xff0c;而且AMD NF4 PRO平台支持双显卡SLI&#xff0c;能极大提高其3D性能&#xff0c;因此一些高端的图形工作站经常使用双Opteron作为运算系统&#xff1b;而Intel的XEON在执行多线程…

腾讯云Intel Xeon Cascade Lake 8255C(2.5 GHz)处理器CPU性能评测

腾讯云服务器CPU处理器Intel Xeon Cascade Lake 8255C(2.5 GHz)处理器主频为2.5GHz&#xff0c;睿频3.1GHz&#xff0c;腾讯云标准型S5实例采用至强处理器 Cascade Lake全新处理器&#xff0c;腾讯云百科来详细说下Intel Xeon Cascade Lake 8255C(2.5 GHz)处理器性能评测&#…

腾讯云AMD EPYC Milan(2.55GHz/3.5GHz)服务器CPU处理器

腾讯云AMD服务器标准型SA3实例和内存型MA3均采用2.55GHz主频的AMD EPYCTM Milan处理器&#xff0c;睿频3.5GHz。腾讯云GPU服务器渲染型GA3实例也是采用这款AMD处理器&#xff0c;计算型PNV4实例和裸金属服务器标准型BMSA3实例也是采用AMD EPYC Milan处理器。 腾讯云AMD EPYC Mi…

计算机的内存和cpu,内存与CPU二者之间的关系_Intel服务器CPU_服务器产业-中关村在线...

“在一起&#xff0c;在一起”&#xff0c;相信这也是很多人希望的结果&#xff0c;无论是从技术角度&#xff0c;还是从空间角度&#xff0c;似乎二者都有着很多理由被放在一起完成任务。但是&#xff0c;二者为何一直没有“在一起”呢&#xff1f;也许这句歌词可以回答原因&a…

腾讯云CPU处理器Intel Ice Lake主频2.7GHz睿频3.3GHz)

腾讯云服务器CPU处理器2.7GHz主频的Intel Xeon Ice Lake&#xff0c;睿频3.3GHz&#xff0c;标准型S6、计算型C6、内存型M6、安全增强内存型M6ce和内存型M6p云服务器也是采用这款搭配第三代Intel Xeon可扩展处理器。 Intel Ice Lake(2.7GHz/3.3GHz) Intel Xeon Ice Lake 新一…