0

我有一个表控制器,它有一种同步方式(只有得到,因为没有来自移动设备的任何更新)。因此,当我第一次执行 PullAsync 时,它会提取整个数据,因为我的 Update At 提交的所有记录都具有相同的时间戳。现在第二次我只是想做增量拉(注意我确实将名称值传递给 PullAsync 以启用增量同步)。

但问题是,它会再次检索整个数据,因为在 Updated At 中没有更新的时间戳(因为表控制器中没有更新方法,因为它是单向同步 Azure 到移动设备)。如果在所有 Update At 值都是相同的时间戳时没有更新,我该如何省略再次提取数据?该问题与以下链接中提到的相同。为了解决这个问题,我们还需要做一次记录更新吗?

https://social.msdn.microsoft.com/Forums/office/en-US/ff002e85-1313-449f-89eb-cd45c1a4846c/mobile-services-sync-pullasync-and-updatedat?forum=azuremobile

提前致谢

4

1 回答 1

1

如果在所有 Update At 值都是相同的时间戳时没有更新,我该如何省略再次提取数据?该问题与以下链接中提到的相同。为了解决这个问题,我们还需要做一次记录更新吗?

我已经检查过这个问题仍然存在。AFAIK,该PullAsync操作将提取 50 条记录(MaxPageSize 默认为 50),然后开始一个事务以插入/更新检索到的实体,然后__config使用最新的 updatedAt 时间戳更新本地表,然后尝试检索下一页记录并执行上述操作再次处理。

注意:列的格式id如下所示deltaToken|{table-name}|{query-id}

拉取操作请求如下所示:

https://<app-name>.azurewebsites.net/tables/<table-name>?$filter=(updatedAt ge datetimeoffset'2018-02-21T08:58:45.446Z')&$orderby=updatedAt&$skip=0&$top=50&__includeDeleted=true

我假设您可以查询本地__config表以检索最新的 updatedAt 值或查询相关的本地表以检索最新的 updatedAt 值,然后在当前的 updatedAt 中添加一个小时间间隔,并在UpdatedAt上一个 updatedAt 时显式指定属性的过滤器使用增量拉操作。

于 2018-03-07T08:26:52.920 回答