Java 如何通过简单配置构建异步数据加载
我的web应用程序中有一个进程,它只是一系列CRUD请求。订单通常是严格的,唯一的区别是每个进程的Id都不同。我想进行“异步”数据加载。例如:Java 如何通过简单配置构建异步数据加载,java,spring,multithreading,threadpool,Java,Spring,Multithreading,Threadpool,我的web应用程序中有一个进程,它只是一系列CRUD请求。订单通常是严格的,唯一的区别是每个进程的Id都不同。我想进行“异步”数据加载。例如: 用户请求执行步骤1 服务器给他/她的响应,一旦服务器构建完整的响应,它就开始构建步骤2、3、5的数据。。。然后把它放在缓存里 我的问题是:你能建议什么机制使它简单易读吗?这是“主要要求”。春天有什么东西吗?(WebFlux不适合该架构)我认为您可以使用生产者-消费者设计模式 例如。 1.从客户端获取请求,执行步骤1工作。 2.响应客户端。 3.创建一个任
我的问题是:你能建议什么机制使它简单易读吗?这是“主要要求”。春天有什么东西吗?(WebFlux不适合该架构)我认为您可以使用
生产者-消费者设计模式
例如。1.从客户端获取请求,执行步骤1工作。
2.响应客户端。
3.创建一个
任务实体
,然后将其添加到任务队列
4.Http工作线程结束。
5.在另一个线程中执行步骤2-N。并将结果放入缓存 对于框架来说,这是一个不错的选择。
RxJava
可能也不错
您可以自己实现。如果您使用的是SpringBoot体系结构,您可以使用注释@Async。这使得它变得非常简单,因为您提到,顺序是必要的,这意味着首先拾取的进程应该首先完成,然后处理器可以拾取任何其他进程,因此在使用spring异步功能时,您可以将线程计数(在threadpoolexecutor中)设置为1