【问题标题】:Azure Offline Sync Updated At pulls whole data during the Incremental SyncAzure 离线同步更新于在增量同步期间拉取整个数据
【发布时间】:2018-03-06 17:13:57
【问题描述】:

我有一个表控制器,它具有单向同步(只有获取,因为没有来自移动设备的任何更新)。因此,当我第一次执行 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

提前致谢

【问题讨论】:

    标签: c# azure xamarin azure-mobile-services azure-data-sync


    【解决方案1】:

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

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

    注意: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 相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      • 2020-04-15
      相关资源
      最近更新 更多