【发布时间】:2017-11-27 07:29:38
【问题描述】:
在我的 Jhipster 应用程序中,Async sendemail() 方法在部署一段时间后停止工作。我认为问题出在异步配置中。有人可以帮我解决这个问题。
下面是我的异步配置代码
public Executor getAsyncExecutor() {
log.debug("Creating Async Task Executor");
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(jHipsterProperties.getAsync().getCorePoolSize());
executor.setMaxPoolSize(jHipsterProperties.getAsync().getMaxPoolSize());
executor.setQueueCapacity(jHipsterProperties.getAsync().getQueueCapacity());
executor.setThreadNamePrefix("investhry-Executor-");
return new ExceptionHandlingAsyncTaskExecutor(executor);
}
发送邮件方法如下:
@Async
public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
log.debug("Send e-mail[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
isMultipart, isHtml, to, subject, content);
// Prepare message using a Spring helper
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
try {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, CharEncoding.UTF_8);
message.setTo(to);
message.setFrom(jHipsterProperties.getMail().getFrom());
message.setSubject(subject);
message.setText(content, isHtml);
javaMailSender.send(mimeMessage);
log.debug("Sent e-mail to User '{}'", to);
} catch (Exception e) {
log.warn("E-mail could not be sent to user '{}'", to, e);
}
}
【问题讨论】:
-
请添加堆栈跟踪或错误消息,以便我们进行分析。
-
这是我的问题。我的日志中没有任何错误。它跳过了 try 和 catch 块。我唯一知道的是它突然停止执行所有异步方法。