【问题标题】:Jhipster: Async sendemail() stops working after sometimeJhipster:异步 sendemail() 一段时间后停止工作
【发布时间】: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 块。我唯一知道的是它突然停止执行所有异步方法。

标签: java spring jhipster


【解决方案1】:

我已经找到了问题所在。问题不在于您的 Async Executer,而在于 JAVA Mail API

transport.send() 的超时值(最终用于发送电子邮件)是无限的。所以所有异步线程都处于等待状态。如果您将其更改为某个值,例如

       mailprop.put("mail.smtp.timeout", 1000);

您可以查看此解决方案here

【讨论】:

    猜你喜欢
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    • 2013-11-19
    • 2010-11-30
    • 1970-01-01
    相关资源
    最近更新 更多