PouchDB推送复制不会推送新文档

时间:2017-08-02 11:13:24

标签: node.js replication couchbase pouchdb

使用PouchDB版本5.2.1和nodejs版本0.10.26。最近我遇到了一个问题,在我的两个不同的PouchDB实例中,在一个实例中推送复制工作正常但在其他情况下推送复制没有发生。 我进一步挖掘了库,我发现在文件pouchdb / lib / index.js中调用了一个名为startNextBatch()的函数。在函数内部,我们正在检查条件

if (returnValue.cancelled || currentBatch) {
       return;
    }

在成功的情况下,currentBatch是未定义的,因此代码没有返回并且发生了推送,但是在失败的情况下,currentBatch被定义并且返回被调用。currentBatch变量中存在的文档是之前被推送到的文档服务器但由于某些其他问题而无法同步,并且无法更新它们的检查点,因此未清除currentBatch变量。

我的问题是:

1)如果我对代码的回复发表评论会有什么影响。

2)为什么推送复制因为定义了变量currentBatch而停止。

1 个答案:

答案 0 :(得分:0)

经过一些进一步的调试后,我发现复制已完全停止,状态码为503未知数据库错误。之所以发生这种情况,是因为我的同步网关存在一些问题,而且某些文档需要时间来同步,因此写入检查点会引发503未知错误(我不确定为什么检查点会搞砸,因为某些文档已同步,其他文件已经同步时间)。 PouchDB库完全中止复制,之后不会发生推送。

1)如果我对回复发表评论,那么当前文档将被推送,但由于复制被中止,因此不会保存检查点。

2)推送复制没有停止,因为定义了currentBatch。 currentBatch已定义,因为复制不会发生。