You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

客户端侧暂停/恢复MongoDB Realm Sync的可行方法有哪些?

MongoDB Realm Sync 同步暂停/恢复实现方案

Realm 官方没有以「暂停/恢复」为关键词单独公开相关接口文档,但是通过同步会话控制的原生能力完全可以实现需求,以下是Realm .NET的具体实现方案,其他平台SDK逻辑通用:

核心实现方式

通过控制SyncSession的启停状态实现同步的暂停和恢复,该操作不会影响本地数据库的读写能力,仅停止和服务端的双向数据同步:

  • 暂停同步:调用同步会话的Stop()方法,即可停止所有上传、下载同步动作
  • 恢复同步:调用同步会话的Start()方法,SDK会自动同步暂停期间产生的所有本地增量数据,同时拉取服务端的变更,无需手动处理差量

.NET 代码示例

// 已打开的Realm实例
var realm = Realm.GetInstance(config);

// 暂停同步
var session = realm.SyncSession;
session.Stop();

// 需要恢复同步时调用
session.Start();

适用场景说明

你可以将该逻辑和系统网络状态监听能力结合,判断当前网络为WiFi/指定自有网络时调用Start(),非允许网络时调用Stop(),即可实现用户自主选择同步时机的需求。

其他平台通用逻辑

所有Realm Sync客户端SDK都支持该能力,仅方法命名略有差异:

  • Swift/Obj-C端对应方法为suspend()、resume()
  • Java/Android端对应方法为stop()、start()
  • JavaScript/TypeScript端对应方法为suspend()、resume()

注意事项

  • 启停接口为线程安全,可直接在网络状态回调中调用,无需额外加锁
  • 不建议频繁启停同步会话,每次启停都会触发和服务端的重连逻辑,高频操作会增加不必要的性能开销
  • 若同步暂停超过7天,恢复同步时需要传输的增量数据量较大,建议首次恢复在稳定网络环境下操作

内容的提问来源于stack exchange,提问作者David Gerding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:24:03