我正在尝试设计一个应用程序(C#/Avalonia),它允许为来自多个来源的数据创建视图。总体思路是使用各种可视化组件链接源并呈现结果。
有多种数据来源:
- 数据库 1
- 数据库 2/3/4
- 肥皂
数据库 1 将用于存储与应用程序本身相关的所有内容(用户、权限等)。
数据库 2-4+ 只是数据馈送。
SOAP - 这是我挣扎的地方,不太清楚如何处理。可能有 10-50 个应用程序的并发实例正在运行,并且每个实例都可以从 SOAP 请求相同的数据更新(供应商的限制将使其成为不可能)。
我当时的想法是采取以下方法:
- 从 SOAP 请求初始数据
- 使用时间戳缓存数据库 1 中的数据
- 定义请求之间的延迟
- 一旦用户从 SOAP 请求数据更新,检查我们是否应该根据时间戳和延迟值返回缓存数据或新数据。
这种方法会导致用户在请求新数据的过程中终止应用程序的问题。
- 用户 1 请求新数据,标记数据库以确保不会处理未来的请求
- 用户 2 请求新数据 - 此阶段没有任何反应,等待并再次查询
- 用户 1 终止 - 没有任何用户的新数据
这种方法是完全错误的吗?尝试仅使用客户端来处理它会是自杀吗?