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

如何关闭/终止Node.js Synced Realm同步进程?Electron应用退出异常

Electron中终止Realm同步进程的解决方案

针对Electron中使用同步Realm时,关闭应用后进程仍在后台运行的问题,可以通过以下步骤彻底终止同步进程:

1. 确保所有Realm实例被正确关闭

同步进程依赖Realm实例的生命周期,必须保证所有打开的Realm实例都被关闭:

  • 调用实例的realm.close()方法,不要遗漏任何引用(比如全局变量、闭包或模块级别的实例)
  • 关闭后将实例引用置为null,避免内存泄漏

示例代码:

// 假设你持有一个全局Realm实例
if (myRealm) {
  myRealm.close();
  myRealm = null;
}

2. 注销Realm同步用户

如果用户处于登录状态,同步会话可能会持续运行,需要主动注销用户:

// 假设currentUser是已登录的Realm用户实例
await currentUser.logOut();

3. 主动停止同步会话

通过Realm实例获取同步会话并强制停止:

if (myRealm?.syncSession) {
  myRealm.syncSession.stop();
}

4. 在Electron退出事件中执行清理逻辑

利用Electron的before-quit或will-quit事件,在应用退出前完成所有清理:

const { app } = require('electron');

app.on('before-quit', async () => {
  // 关闭Realm实例
  if (myRealm) {
    myRealm.close();
    myRealm = null;
  }
  // 注销用户
  if (currentUser) {
    await currentUser.logOut();
  }
});

5. 检查订阅配置

确认你的initialSubscriptions中没有无效或冗余的订阅规则,残留的订阅可能导致同步进程持续运行。

内容的提问来源于stack exchange,提问作者Gaurav Bordoloi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:07:50