实现多任务处理

时间:2017-08-20 03:44:29

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

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

拥有执行两项任务的服务

  1. 更新记录
  2. 搜索记录。
  3. 这两项是独立的任务。因为没有必要等待其他任务完成。

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

    这里可以使用哪种JPA API实现多次拍摄?

2 个答案:

答案 0 :(得分:1)

我认为使用线程池来执行这些任务,而不是依赖于JPA API。 来自池的Thread1在Thread2上记录更新时执行搜索。 这样就简单多了即使您更喜欢使用其他ORM框架

答案 1 :(得分:0)

您可以使用@Async注释来实现此目的。要在Spring引导中启用异步执行支持,您需要使用@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);