我有一种服务方法,该方法根据状态执行数据库保存并异步发送邮件。由于它是同时访问的,因此我正在使该块同步。
代码:
synchronized(this){
status = dao.getStatus(id);
if(status != request.getStatus()) {
dao.save(obj);
process.sendMail();
}
}
class Process {
@Async
public void sendMail() {}
}
这会影响后台邮件操作吗?等待线程是否将等待邮件操作完成?
答案 0 :(得分:0)
如果您的方法
@Async
public void sendMail() {}
在同一个班级,所以无法正常工作。
对于@Async
它必须仅应用于公共方法
自我调用–从同一内部调用async方法 上课–不起作用
因此,我认为您的方法sendMail
可以正常工作,只要它与synchronized
块位于不同的类中即可。