gpt4 book ai didi

ios - 当应用程序有互联网连接时,将离线核心数据与服务器同步

转载 作者:可可西里 更新时间:2023-11-01 06:23:11 25 4
gpt4 key购买 nike

我需要创建离线模块来存储我的所有请求,然后当 Internet 连接可用时,该模块将一个一个地向服务器发出请求。

现在我正在使用 Core Data 和 AFNetworking 2.0,但我在网上工作。所以接下来是在线算法:

  1. 创建请求
  2. 检查互联网连接
  3. 等待回复
  4. 根据 JSON 响应创建对象(记录在数据库中)

但是离线算法有一点不同:

  1. 创建请求
  2. 检查互联网连接
  3. 创建代理对象(记录在数据库中)
  4. 收听互联网连接
  5. 与服务器同步临时数据。

临时对象与后端对象同步后需要更新的主要唯一标识符和关系。

我的问题是已经有解决方案如何将离线数据与服务器同步?

或者也许你有更好的算法对我来说也可以)

最佳答案

我会建议以下流程:

  1. 实现一个“请求管理器”,其中有一个“私有(private)队列”上下文
  2. 当某个模块需要发出请求时,它使用管理器来执行
  3. 当需要请求时,管理器总是将其写入存储(使用其上下文),并带有创建日期的时间戳
  4. 经理还将监听在线/离线状态变化
    1. 当检测到在线状态时,托管查询存储中的未决请求并将它们一一发送到服务器
    2. 当需要新的请求时,管理器将按照(4.1)中的描述来防止请求饥饿
    3. 您可以使用一个标志来指示管理器当前是否正在运行(处理请求),以便插入的新请求不会立即触发从商店中获取数据
    4. 向服务器发出的请求可能有自己的上下文来写入存储,这样它们就不会干扰经理的工作
    5. 当检测到“离线”状态时,经理可以取消所有事件的请求(它们将在下次检测到在线状态时执行
    6. 如果请求完成(提交给服务器和本地存储),则将其从存储中删除

在激活管理器之前,您可以查询商店中的未决请求并取消/删除不再相关的请求。

关于ios - 当应用程序有互联网连接时,将离线核心数据与服务器同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22326956/

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