springboot使用异步任务

简介: springboot使用异步任务

一个简单的异步任务在springboot中已经为我们封装好,这里我们可以直接在函数上加@Async注解即可使用

注意,我们要接收返回值的话,函数返回类型需要为Future

例如,我们这里使用异步任务和建造者模式去创建一个对象

package com.ruben;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncResult;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
/**
 * @ClassName: AsyncDemo
 * @Description: 我还没有写描述
 * @Date: 2020/11/30 0030 21:17
 * *
 * @author: <achao1441470436@gmail.com>
 * @version: 1.0
 * @since: JDK 1.8
 */
@SpringBootTest
public class AsyncDemo {
    @Test
    public void test() throws ExecutionException, InterruptedException {
        Future<StreamDemo.User> future = whoAmI("ruben", 19);
        StreamDemo.User user = future.get();
        System.out.println(user);
    }
    @Async
    public Future<StreamDemo.User> whoAmI(String ruben, Integer age) {
        return new AsyncResult<>(StreamDemo.User.builder().name(ruben).age(age).build());
    }
}

运行结果

要注意这里返回值是new AsyncResult

相关文章
|
2月前
|
druid Java 数据库
Spring Boot的定时任务与异步任务
Spring Boot的定时任务与异步任务
|
2天前
|
Java API UED
Spring Boot中如何处理异步任务
Spring Boot中如何处理异步任务
|
3天前
|
Java API Spring
Spring Boot中如何处理异步任务
Spring Boot中如何处理异步任务
|
5天前
|
监控 安全 Java
Spring Boot优雅Shutdown时异步线程安全优化
Spring Boot优雅Shutdown时异步线程安全优化
|
5天前
|
Java 测试技术
springboot延时任务
springboot延时任务
8 0
|
6天前
|
SQL API 调度
Springboot2.4.5集成Quartz实现动态任务数据持久化-不怕重启服务
Springboot2.4.5集成Quartz实现动态任务数据持久化-不怕重启服务
11 0
|
7天前
|
Java API 调度
Web后端Javaee企业级开发之定时任务 Springboot整合任务框架Quartz和Task详解
Web后端Javaee企业级开发之定时任务 Springboot整合任务框架Quartz和Task详解
11 0
|
2月前
|
Java 数据库 Spring
springboot 解耦、隔离、异步的原则以及实战
【5月更文挑战第30天】在Spring Boot中实现解耦、隔离和异步的原则,能够提升应用程序的可维护性、可扩展性和性能。下面我会先介绍这三个原则的基本概念和意义,然后通过实战示例展示如何在Spring Boot应用中应用这些原则。
44 1
|
2月前
|
SQL Java 调度
SpringBoot使用@Scheduled定时任务录入将要过期任务数据
SpringBoot使用@Scheduled定时任务录入将要过期任务数据
|
2月前
|
Java API 调度
springboot的异步类的介绍
【4月更文挑战第18天】FutureTask 是 Java 并发 API 中的一个实用类,它实现了 Future 接口并扩展了 Runnable,因此它可以被 ExecutorService 执行。FutureTask 通常用于包装 Callable 或 Runnable 对象,这样它们就可以提交给 ExecutorService 并获得 Future 对象,用于查询计算的状态和结果
21 1