public void send() {} private void sendMessage(){try { MimeMessage mailMessage = javaMailSender.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage); InputStream template = MailSender.class.getClassLoader().getResourceAsStream("maile.html"); Scanner scanner = new Scanner(template, "UTF-8"); String text = MessageUtil.formatMailContent(scanner.useDelimiter("\\A").next(),MessageUtil.formatMailContent(message,arg)); messageHelper.setFrom("buglife@buglife.cn"); messageHelper.setTo(to); messageHelper.setSubject("BugLife 注册提醒"); messageHelper.setText(text, true); this.mailMessage = mailMessage; new Thread(){ @Override public void run() { sendMessage(); } }.start(); } catch (Exception e) { LOGGER.error(e.getMessage()); }
javaMailSender.send(mailMessage);
经常会遇到这样的问题,在一个方法中执行到倒数第二步的时候就已经将事务执行完毕,然而消息通知往往放在最后一步执行。 这么一来如果消息通知过慢则会导致用户体验急剧下降,所以我们不得不考虑使用独立线程完成此事。如下代码正是处理邮件通知中的延迟问题:
转载于:https://my.oschina.net/crazyharry/blog/1105098