java - 如何利用Spring MVC中的多线程概念进行后续操作

标签 java spring-mvc

我想在我的网络应用程序中成功更新个人资料后发送电子邮件并更新 Activity 日志。对于发送邮件和更新 Activity 日志,我想使用线程,以便配置文件更新响应可以立即发送回客户端,并且后续操作可以由线程处理。请建议一个实现方案。

最佳答案

有很多方法可以实现这一点,事实上它是一个 Spring MVC 应用程序几乎无关紧要。

如果您使用的是 Java 8,那么您只需调用执行器服务即可从其池中为您提供一个线程:

    String emailAddress = //get email address...
    ExecutorService executorService = Executors.newSingleThreadExecutor();
    executorService.submit(() -> {
       emailService.sendNotification(emailAddress); 
    });

Java 8 之前的版本:

final String emailAddress = "";
Thread thread = new Thread(new Runnable() {
    @Override
    public void run() {
        emailService.sendNotification(emailAddress);
    }
});
thread.start();

如果您正在创建更复杂的应用程序,那么您应该考虑使用消息队列(ActiveMQ 很好)。这使您可以在添加更多异步任务时获得更多控制、可见性和扩展性,这也意味着如果同时有大量注册,您的应用程序服务器不会出现线程匮乏的情况。

关于java - 如何利用Spring MVC中的多线程概念进行后续操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39200587/

相关文章:

Java对象序列化-如何添加成员变量?

java - 使用截断的时区信息解析 Java 日期

java - 考虑在您的配置中定义类型为 'com.ensat.services.ProductService' 的 bean

java - Spring Boot 单元测试 - 测试失败提示没有定义 "entityManagerFactory"bean

java - maven添加新的远程存储库

java - gradlewAssembleRelease、gradlewInstallRelease 和 gradlew bundleRelease 之间有什么区别以及何时使用哪个?

Java日期格式转换

java - Spring Boot 。如何测试http协议(protocol)版本?

java - Spring MVC 示例中的 "Hello World"来自哪里

java - Spring MVC中如何维护 session ?