移动客户端与服务端离线数据上报功能解决方案

目前有很多需求需要面对移动客户端在无网络环境下进行业务处理的情况(虽然听起来很神奇的,现在4G时代马上要迎来5G时代了,然而还是有很多情况和地区没有办法让移动设备联网),因此在处理这类问题时如何保证移动终端数据与服务端数据一致成为了一个待解决的问题。

我们通过绘制场景并增加状态机和异常处理来解决以上问题

 

移动客户端与服务端离线数据上报功能解决方案_第1张图片

1.当用户点击提交按钮时,客户端检测到网络不通,则将用户填写的数据存贮在本地存储中,并将数据状态设置为待提交状态;

2.用户在查询时可以看到本地的待提交数据,并可以对待提交数据进行修改;

3.当用户可以联网时,这时候数据还未提交,从服务端获取实时数据,查询列表中显示的是web数据和本地待提交数据的和;

4.(进入查询、或手动点击同步数据后)将所有本地待提交数据生成离线提交文件,并将本次提交数据的状态设置为提交中状态,此时这些数据不能被修改。打包成文件提交的目的是增加提交事务处理功能,因为此次提交很可能由于网络不稳定而失败,因此需要事务来保证数据的一致性。

5.服务端后去文件后立刻放回收到成功的状态,此时客户端收到数据后可以将提交中的数据删除。(短时间内客户端与服务端数据仍然一致,不过总数量少于实际数据数量,因为提交的数据还待服务端进行数据处理,由于服务端采用异步多道同时处理,因此很快可以达到服务端与客户端的数据一致)

6.服务端快速处理异步提交的数据,成功直接入库,失败的需要根据用户账号,通过消息推送通知用户失败的离线数据,其中由于数据不一致的数据,需要用户确认是用自己的数据覆盖已有数据还是采用当前服务端数据;由于坏数据造成的数据处理异常,需要用户确认删除出错数据还是补充修改坏数据。

 

通过以上处理流程,可以基本满足业务上离线处理需求。

移动客户端与服务端离线数据上报功能解决方案_第2张图片

 

 

你可能感兴趣的:(解决方案)