【问题标题】:Multiple Pouchdb doesn't sync with couchdb多个 Pouchdb 不与 couchdb 同步
【发布时间】:2021-05-09 02:38:48
【问题描述】:

我在我的电子应用程序中使用 pouchdb,我的应用程序中有超过 15 个数据库。我的问题是当我将一两个数据库同步到 couchdb 时效果很好,但是超过 3 个 couchdb 不同步。

我的代码:

var sync = PouchDB.sync('mydb', 'http://localhost:5984/mydb', {
  live: true,
  retry: true
})

我也尝试过不使用 live 但它增加了程序复杂性,但是我想在执行插入、删除、更新操作时手动放置代码。

pouchdb 可以监视放置、更新、删除事件吗? 改为实时执行手动同步

我应该如何实现?

如何正确同步多个数据库?

我选择实时同步还是手动同步?

pouchdb 适合多数据库同步吗?

【问题讨论】:

    标签: pouchdb


    【解决方案1】:

    不要将数据库与实时同步一起使用,而是将手动同步与回调一起使用

    问题:

    1. 多个 pouchdb 同步发出多个 http 请求,例如:(20 个 pouchdb 同步发出 20 个 http 请求)所以这是个坏主意
    2. pouchdb 实时同步很好,适合一两个数据库,如果您进行 10 或 20 个实时 pouchdb 同步,它始终会激活 10 或 20 个 http 请求,所以这是个坏主意,而且还会阻塞您的前端 dom
    3. 不要将手动同步与 setinterval 一起使用,setinterval 也是个坏主意,但是它会在同步完成之前调用同步

    解决方案

    1. 我们保留单个 http 请求
    2. 我们在一个一个完成后调用每个数据库
    3. 我们总是生活在没有 dom 块的情况下,但是 setimeout 让您的 dom 放松

    代码

        function sync(){
          setTimeout(function() {
        var sync = PouchDB.sync('db1', 'http://localhost:5984/db1')
            .on('complete', (info) => {
            PouchDB.sync('db2', 'http://localhost:5984/db2')
            .on('complete', (info) => {
            sync()
        });
        });
       },1000)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 2020-08-02
      • 1970-01-01
      相关资源
      最近更新 更多