在安卓上实现持久化数据队列以保证云端同步

3
我正在开发一个Android实时数据收集应用程序。 目前我每秒产生约1.2 KB的数据,并且需要通过REST API每秒将它们上传到远程服务器。
问题在于这些数据是关键的,我不能容忍任何损失。因此,我需要将它们缓存到磁盘上并将数据上传到远程服务器。在每个数据的确认交付后,可以从缓存中删除它,否则必须保留缓存,直到成功上传数据,即使设备重新启动后也是如此。
在您的观点中,解决这个问题的最佳方法是什么? 有哪些可能有帮助的工具/框架/库来创建这个解决方案?
1个回答

1
我会选择Square Tape(http://square.github.io/tape/),它保证数据无论如何都会写入磁盘。您可以处理自己的逻辑来同步它并重新排队以防失败。

磁带似乎很适合那个目的,那么数据上传呢?Square也有okHttp和Retrofit框架,但我还没有决定要如何使用它们。 - Nowa Concordia
偶尔,当您决定上传数据(取决于您的逻辑)时,只需弹出数据或其中一部分并开始上传。为失败的项目做好准备-然后将它们返回到队列中并稍后重试。您应该很好,并且数据应该是安全的。 - MarkySmarky
好的,听起来够好的:) 谢谢 @Marky,现在我会给Tape一个机会。 - Nowa Concordia
@MarkySmarky,我在看Tape,但是找不到任何关于它的文档。你知道哪里可以找到适当的文档或实现指南吗? - Nowa Concordia
这里有一个示例应用程序(https://github.com/square/tape/tree/master/tape-sample),还有一些在这里(https://github.com/square/tape)。 - MarkySmarky
我还发现了另一个用于同样目的的工具,https://github.com/path/android-priority-jobqueue - Nowa Concordia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接