SpringBoot如何使用异步任务

SpringBoot异步任务使用起来非常简单只需要两个步骤。

但是在什么情况下使用就需要考虑了。比方说,我要完成租客入住、房租计算和租客退房的业务操作的最后,让系统通过邮件的方式发送某些信息给租客或者房东。因为业务操作的时候都要保证业务数据的一致性,会有事务管理。系统在添加/更新/删除数据等操作都不能出现错误,哪个位置出现错误都会事务回滚。而发送邮件操作我就不进行事务管理,毕竟发送邮件这只是一个提示的作用,即使在发送邮件的过程中出现错误无法发送这都是能够忍受的。如果不使用异步任务把发送邮件的代码写进服务层里,会导致该请求的操作时间变得更长,影响用户体验。

启动类添加@EnableAsync注解:

SpringBoot如何使用异步任务

业务方法添加@Async注解

SpringBoot如何使用异步任务

后言

使用了异步任务之后,业务的操作时间变快了,而且是能感受到快了不少。

比如说我退房操作在数据库得时间是:8分11秒

SpringBoot如何使用异步任务

而用户或者房东收到邮件信息的时间是:8分13/14秒

SpringBoot如何使用异步任务SpringBoot如何使用异步任务

用户响应操作成功的速度大概是快了3秒钟,但是3秒种对于用户体验来说已经很长。