在使用activemq作为异步发送邮件时,遇到邮件不能正常发送,有的时候能够正常发送,有的
时候却发不出去,调试时,也没有发现任何异常信息。
处于调试模式下发送时,邮件都可以正常发送。
但是根据日志分析,在读取数据库时,得到的记录为null.
经过几个小时的试验,问题终于解决,相关代码:
[quote]不能正常发送[/quote]
[quote]正常发送[/quote]
时候却发不出去,调试时,也没有发现任何异常信息。
处于调试模式下发送时,邮件都可以正常发送。
但是根据日志分析,在读取数据库时,得到的记录为null.
经过几个小时的试验,问题终于解决,相关代码:
[quote]不能正常发送[/quote]
public void sendEmailFromDB(Long msgId) throws Exception {
UnsentMail mail = unsentMailService.loadUnsentMail(msgId);
sendEmailFromDB(mail);
}
[quote]正常发送[/quote]
public void sendEmailFromDB(Long msgId) throws Exception {
logger.debug("send email----unsentMailId is null===============" + (msgId == null));
try {
Thread.sleep(3000); // wait for 3 seconds
} catch (InterruptedException e) {
logger.error(TatHomeUtils.getExceptionStackTrace(e));
}
logger.debug("[sendEmailFromDB] wait for 3 seconds before retrieving.");
UnsentMail mail = unsentMailService.loadUnsentMail(msgId);
sendEmailFromDB(mail);
}