【问题标题】:Achieving multi tasking [closed]实现多任务[关闭]
【发布时间】:2017-08-20 03:44:29
【问题描述】:

如何在 Spring/JPA 中实现多任务。

拥有执行两项任务的服务

  1. 更新记录
  2. 搜索记录。

这两个是独立的任务。因为不需要等待其他任务完成。

在一些研究中,我发现@Scheduled 可用于安排任务。 但这里的场景不同,并行处理 2 个独立任务的解决方案。

这里可以使用哪个JPA API来实现多取?

【问题讨论】:

标签: spring spring-mvc spring-boot spring-data-jpa


【解决方案1】:

我认为与其依赖 JPA API,不如使用线程池来执行这些任务。 池中的 Thread1 在 Thread2 上记录更新时执行搜索。 这种方式会简单很多,即使你更喜欢使用其他 ORM 框架

【讨论】:

    【解决方案2】:

    您可以为此目的使用@Async 注释。要在 Spring Boot 中启用异步执行支持,您需要使用 @EnableAsync 注释您的主类。

    @SpringBootApplication
    @EnableAsync
    public class MyApplication{
    
    }   
    

    然后将@Async 添加到您的查询中。

    示例:

    @Async
    Future<User> findByFirstname(String firstname);               
    
    @Async
    CompletableFuture<User> findByFirstname(String firstname); 
    
    @Async
    ListenableFuture<User> findByLastname(String lastname); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      • 1970-01-01
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多