Spring Boot 异步任务实战

在项目开发中,绝大多数情况下都是通过同步方式处理业务逻辑的,但是比如批量处理数据,批量发送邮件,批量发送短信等操作 容易造成阻塞的情况,之前大部分都是使用多线程来完成此类任务。而在Spring 3+之后,就已经内置了 @Async 注解来完美解决这个问题,从而提高效率。

使用的注解:

@EnableAysnc 启动类上开启基于注解的异步任务

@Aysnc 标识的方法会异步执行



异步任务实战操作如下:

  1. 新建springboot项目
    在这里插入图片描述

  2. Service层模拟操作数据库:

 	@Service  
 	public class AsyncService {  
 	  
 	    //批量操作数据  
 	    @Async  
 	    public void batchAdd() {  
 	        try {  
 	            Thread.sleep(3 * 1000);  
 	        } catch (InterruptedException e) {  
 	            e.printStackTrace();  
 	        }  
 	        System.out.println("批量数据保存中....");  
 	    }  
 	} 


  1. Controller层测试:
 	@RestController  
 	public class PageController {  
 	  
 	    @Autowired  
 	    AsyncService asyncService;  
 	  
 	    /** 
 	     * 测试异步任务 
 	     * 
 	     * 当controller层调用service层的方法时, 
 	     * 由于service方法的上面加了异步的注解, 
 	     * controller层的接口直接进行下面的程序运行。 
 	     * 程序运行过程相当于开辟一个新的线程进入service方法,而controller层继续走自己的程序。 
 	     * @return 
 	     */  
 	    @GetMapping("/batchAdd")  
 	    public String batchAdd(){  
 	        asyncService.batchAdd();  
 	        return "success";  
 	    }  
 	}  









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ark方舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值