停止CouchBase Lite连续复制

本文关键字:复制 连续 Lite CouchBase 停止 | 更新日期: 2023-09-27 17:54:53

我在CBL复制器上遇到了一个非常奇怪的问题:

全球:

public Replication _Push;
public Replication _Pull;

在init中:

        _DB = Manager.SharedInstance.GetDatabase(_DBName);
        if (_DB == null) throw new Exception("Unable to initialize CB Lite");
        _Push = _DB.CreatePushReplication(_DBServerURL);
        _Pull = _DB.CreatePullReplication(_DBServerURL);
        List<String> Channels = new List<string>();
        Channels.Add("TestChannel");
        _Push.Channels = Channels;
        _Pull.Channels = Channels;
        _Push.Start();
        _Pull.Start();
        _Push.Continuous = true;
        _Pull.Continuous = true;

问题是,一开始Replicator以Active状态启动,然后变为空闲状态,但最后变为Stopped状态,it不再返回。

CouchBase文档告诉我:

…另一方面,连续复制将无限期地保持活动状态,观察发生的进一步更改并传输它们. ...

Stopped:在传输完所有文档或发生致命错误后,一次性复制进入此状态。(连续复制永不停止)

所以这真的很奇怪…我正在测试桌面应用....

我也检查了两个LastError对象,但即使在连续复制停止时它们也是空的…

停止CouchBase Lite连续复制

问题解决了,似乎您必须在启动复制器之前将其设置为连续:

_Push.Continuous = true;
_Pull.Continuous = true;
_Push.Start();
_Pull.Start();