首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从不同的REST端点更新数据存储实体

从不同的REST端点更新数据存储实体
EN

Stack Overflow用户
提问于 2019-07-24 08:46:26
回答 1查看 168关注 0票数 0

让我们假设我有一个具有以下属性和初始值的雇员实体:

代码语言:javascript
运行
复制
Employee{Name : "Baqir", employeeID: "1234", requestID: "123456" , status : "INITIATED"}

请注意,我不能使用实体键查询获得强一致的结果,因为在这种情况下,我们没有实体键.

从应用程序引擎后端,我们有集成的防火墙,以发送通知给员工。当通知到达员工的安卓手机,我们的安卓应用程序点击rest endpoint1使用安卓后台服务,以更新状态从启动到交付。当员工点击通知时,我们的安卓应用程序打开安卓摄像头,捕捉员工正面,并使用REST endpoint2向服务器发送压缩图像。另外还有一个endpoint3,它使用安卓后台服务保存了高质量的相同捕捉到的面部图像。

REST端点1 :

1-使用filter(employeeID)和filter(requestID)加载实体,2-更新状态以交付3-保存实体4-将成功结果发送给安卓客户端。

来自endpoint1的更新实体应该如下所示:

代码语言:javascript
运行
复制
Employee{Name : "Baqir", employeeID: "1234", requestID: "123456" , status : "DELIVERED"}

REST Endpoint2: 1-使用filter(employeeID)和filter(requestID) 2加载实体--存储捕获的面向云存储并保存下载的URL。3-将状态更新为“已完成”4-保存实体5-将成功结果发送到android客户端

来自endpoint2的更新实体应该如下所示:

代码语言:javascript
运行
复制
Employee{Name : "Baqir", employeeID: "1234", profilePic: " cloud storage download URL",requestID: "123456" , status : "COMPLETED"}

REST Endpoint3: 1-使用filter(employeeID)和filter(requestID) 2加载实体,将捕获的面部高质量图像存储到云存储中,并保存下载的URL。4-保存实体5-将成功结果发送到android客户端。

来自endpoint3的更新实体应该如下所示:

代码语言:javascript
运行
复制
Employee{Name : "Baqir", employeeID: "1234", profilePic: " cloud storage download URL",  HQprofilePic: " cloud storage download URL", requestID: "123456" , status : "COMPLETED"}

问题: Android总是先执行endpoint1,然后执行endpoint2,然后执行endpoint3,然后从所有端点获得成功结果。但有时数据存储中的最终更新实体是由endpoint1更新的实体。

在执行端点1,2,3之后,数据存储中的最终实体是:

代码语言:javascript
运行
复制
 Employee{Name : "Baqir", employeeID: "1234", requestID: "123456" , status : "DELIVERED"} 

在某些情况下,最终实体是endpoint1和endpoint3的结果。i.e

代码语言:javascript
运行
复制
Employee{Name : "Baqir", employeeID: "1234", requestID: "123456" , HQprofilePic: " cloud storage download URL", status : "DELIVERED"} 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-24 10:42:35

在所有端点中,可以将load the entity using filter(employeeID) and filter(requestID) (最终是一致的)替换为:

  1. 使用只查询 (EmployeeID)和filter(requestID)获取实体密钥
  2. 通过键查找加载实体(始终一致)

您只需要知道初始创建实体与相应的employeeID和requestID之间的延迟,以及它在第1步中变得可见(即当该查询的索引被更新时)之间的延迟--直到出现这种情况,您将无法获得实体键。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57178818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档