我有一个应用程序,我们使用azure移动服务来存储和退出来自/到azure的数据。我们还使用Blob存储在云上存储图像和视频。
现在我们也希望在我们的应用程序中支持离线模式,因此我使用了azure移动服务离线同步机制。 所以,我的想法是以下列方式处理这种情况:
为上传(推送异步)
创建下载界面(拉动异步)
将所有内容放在一个位置或为同步机制定义每个类/接口? 恩。我在数据库中有6-7个表,我应该创建一个不同的接口/类,还是使用DownloadData或UploadData等方法将所有内容包装在一个接口/类中?
另外,为了在blob存储上存储图片和视频,我创建了一个静态方法,在一个类中使用Task.Factory.StartNew在后台运行它,将图片和视频上传到blob存储。从这个方法我调用另一个名为“TryOfflineSync()”的方法,它也有Task.Factory.StartNew,它只使用Azure移动服务的Pull和PushAsync方法从本地数据库获取数据到服务器,反之亦然。 / p>
由于主键中存在某些违规行为,也会出现频繁的“Push operation failed
”错误,但是我们从我们这边维护它,每当我们创建新记录时,我们都会创建新的Guid,这是所有的“ID”字段我们的桌子。
此外,我尝试从方法中删除Task.Factory.StartNew,但随后PushAsync无法正常工作意味着我有12个待处理操作,但他们没有推送到服务器。在这种情况下,拉也失败了。
所以任何人都知道一种可以正确管理同步操作的机制吗?
答案 0 :(得分:0)
本文介绍如何使用Xamarin表单和Azure移动服务实现脱机同步:http://blog.alectucker.com/post/2014/08/01/azure-mobile-services-with-xamarin-forms.aspx