springboot异步任务 springboot实现异步任务
微滑低 人气:0想了解springboot实现异步任务的相关内容吗,微滑低在本文为您仔细讲解springboot异步任务的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:springboot,异步任务,下面大家一起来学习吧。
1.什么异步任务
同步:一定要等任务执行完了,得到结果,才执行下一个任务。
异步:不等任务执行完,直接执行下一个任务。
2.异步任务使用场景
在许多网站中,都会有发送邮件验证邮箱功能,执行该任务时,需要较长的时间,此时为了更好的用户体验,前端可以先返回完成的信息,后台去执行任务。
3.异步任务的实现步骤
首先模拟一个网站跳转的过程,假设某一个线程执行任务时需要5秒,结束以后才会进行下一步操作,我们令线程休眠五秒,然后通过controller进行页面跳转
service
package com.kuang.service; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; @Service public class AsyncService { @Async public void hello(){ try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("数据正在传送!"); } }
controller
package com.kuang.controller; import com.kuang.service.AsyncService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class AsyncController { @Autowired AsyncService asyncService; @RequestMapping("/hello") public String hello(){ asyncService.hello(); return "OK"; } }
总结:
SpringBoot则可以使用更简便的方式来实现异步任务调度。我们只需要在Service层需要多线程处理的方法上加上@Async注解。
然后在主启动类上加上**@EnableAsync**注解来开启异步注解功能即可执行异步任务调度,此时执行可立即跳转然后再执行hello方法控制台来输出“数据正在传送”。
加载全部内容