【问题标题】:is GCM a robust method to keep database in sync?GCM 是保持数据库同步的可靠方法吗?
【发布时间】:2012-10-04 14:33:36
【问题描述】:

我正在为 Web 服务 API 开发客户端,其中一些数据持久存储在 SQLite 数据库中。

GCM 是保持数据同步的可靠方法吗?

我的意思是,GCM 推送通知是否足以保持数据同步或消息可能“丢失”或服务可能不可用?

【问题讨论】:

    标签: android google-cloud-messaging


    【解决方案1】:

    GCM 的主要设计目的是充当“提醒”机制,帮助您主动意识到有信息可供您通过其他方式检索。虽然可以打包比 4K 有效载荷更多的数据,但 GCM 没有任何形式的可靠性保证、及时性保证等。

    因此,使用 GCM 作为轮询的辅助手段以保持数据库同步似乎是完全合理的。使用 GCM 作为数据库更改的唯一传递机制似乎很危险。

    【讨论】:

    • 我应该如何决定是否需要在服务器上检查旧数据是否有更新?每次用户查看数据时检查更新几乎与推送而不是轮询的想法背道而驰。
    • @GalBen-Haim:“我应该如何决定是否需要在服务器上检查旧数据是否有更新?” ——我怎么知道?我不是你。我没有写应用程序。我没有写服务器。我不知道“数据”是什么,什么被认为是“旧的”,或者围绕您的应用程序的任何业务规则。
    • 这是一个理论问题,假设 SQLite 数据库应该同步到远程数据库。每当远程服务器上发生更改时,都会发送 GCM 消息并同步 SQLite。尽管如此,仍可能存在消息丢失或服务不可用的情况。我说的是 SQLite 数据库中已经存在的数据应该用新数据刷新的情况。什么是知道这一点的有效方法? “愚蠢”的方式是在用户要求查看时刷新所有数据..
    • 我接受了你的回答并提出了一个新问题 - stackoverflow.com/questions/12883089/…
    • 我认为同步适配器是您回答的解决方案。看到这个:stackoverflow.com/questions/10829371/…developer.android.com/training/sync-adapters/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多