gpt4 book ai didi

安卓同步适配器 : How to sync when item is deleted from server side?

转载 作者:行者123 更新时间:2023-11-30 01:39:24 25 4
gpt4 key购买 nike

在我的应用程序中,用户可以订购一些东西,稍后他也可以取消它,但是当用户试图取消时,我用存储在本地数据库中并使用 syncadapter 从服务器同步的取消原因列表填充了一个对话框。 .我们还有管理仪表板,我们的管理员可以在其中添加或删除取消原因。我能够同步新添加的取消原因,但如何告诉 syncadapter某些原因被删除?

我当前的同步是如何工作的。
现在我有一个名为 get_cancel_reasons 的 API我用 syncadapter 打的然后我发送 last_updated_at当我的取消原因最后一次在本地数据库中更新时传递的参数。从服务器端我比较客户端 last_updated_at到我的服务器 last_updated_at field 。如果它比服务器落后,那么我会发送新添加的取消原因。如果我从服务器仪表板中删除一个原因,现在如何管理?

我尝试过的

我没有从服务器上删除原因,而是保留了数据和一个表明它处于非 Activity 状态的标志。但问题是如果数据变化非常频繁,服务器数据库表中就会有很多不必要的数据。

最佳答案

我看到两个选项:

  1. 始终发送所有 cancel_reasons 并从您的客户端数据库中删除尚未从服务器接收到的所有内容。不确定您有多少取消原因,但如果不是那么多,我会选择这个。您可以使用 ETag 和“if-none-match” header 或类似机制来避免在没有任何更改的情况下浪费任何数据。

  2. 继续您的想法以标记已删除的原因。如果您担心服务器上的数据浪费(无论如何这些原因预计会多久更改一次?)您可以定期删除非常旧的取消原因并回退到 1。如果客户端发送 last_updated_at超过数据库中最早更新日期的日期。当然,在这种情况下,客户端应该准备好接收完整的响应而不是更改集。

查看 RFC 6578它描述了一种非常相似的机制,用于在 WebDAV 协议(protocol)中进行高效同步。

关于安卓同步适配器 : How to sync when item is deleted from server side?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34693912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com