异步实现邮件发送

目录

问题描述:

问题分析:

问题解决:

分析总结:


问题描述:

        在写接口的时候,遇到一个问题,前端要求直接返回结果再去运行其他代码。

问题分析:

        因为经费紧张,本次使用的是网易发送邮件,也就是用你的账号给其他人发送邮件这种,这也存在一些问题,就是不能在短时间内大量发送邮件信息,于是我加了一个定时器。

        限制为每半分钟发送一次,后台在接收到前端发送的数组时,数组中的数据每过半分钟才能执行一条,也就是发送给好几个人的邮件,过了半分钟才能给下一个人发送邮件这种情况。

        于是这就产生了一个问题,需要等这些定时器都执行完毕才能获取到接口返回的结果。

        而且这样也会造成阻塞等待,比较耗时。

问题解决:

        加入异步成功解决,即为主进程直接返回一个结果,另一个进程则去执行那个比较耗时的。

具体实现:

        1.在启动类上加上注解@EnableAsync。

        2.在service层的方法上加上@Async 注解。

        3.在controller层正常调用此方法就行。

分析总结:

        @Async 注解可以添加到类上,表示该类里面的所有方法都是异步执行,也可以添加到方法上,表示该方法异步执行。

猜你喜欢

转载自blog.csdn.net/Hubery_sky/article/details/132048137
今日推荐