java - 如何通过简单的配置构建异步数据加载
问题描述
我的网络应用程序中有一个进程,它只是一系列 CRUD 请求。订单通常是严格的,唯一的区别是每个进程的 ID 都不同。我想做“异步”数据加载。例如:
- 用户提出第 1 步的请求。
- 服务器给他/她的响应,一旦服务器建立完整的响应,它就开始为第 2、3、5 步构建数据......并将其放入缓存中。
我的问题是:您能建议任何使其简单易读的机制吗?这是'主要要求。Spring对此有什么帮助吗?(WebFlux 不太适合架构)
解决方案
我认为你可以使用producer-consumer design pattern
例如。
1.从客户那里得到一个请求,做第1步的工作。
2.响应客户端。
3.制作一个task entity
,然后将其添加到一个task queue
。
4. Http工作线程结束。
5. 在另一个线程中执行步骤 2-N。并将结果放入缓存中。
对于框架,akka是一个不错的选择。
RxJava
可能也不错。
你可以自己实现它。
推荐阅读
- python-3.x - 这个链表插入实现是如何工作的?
- javascript - 当我使用 jQuery ddSlick JS 选择一个选项时,页面不断加载
- sql - 在表格的每个字段和字段中的每个字符之间插入分隔符
- google-apps-script - 尝试通过高级日历服务更新事件颜色时出现“对象不允许”错误
- c# - asp.net core api方法类型为IEnumerable时如何返回dapper动态查询
并且没有 newtonsoft.json 参考 - tsql - 使用多个文件在sql server中动态恢复数据库
- excel - 在 Workbook_Open 上启动宏时 Excel 未完全打开
- python - 使用 BeautifulSoup 解析标签/结果中的数据
- alert - Stackdriver 政策未自动解析
- mysql - 查询后的 SQL 存储结果