PouchDB和Couchbase Sync Gateway同步问题

3
我有这个结构

Couchbase服务器 <---> Couch同步网关 <---> PouchDB

我有4个数据库,每个本地数据库都与远程数据库同步,每个远程数据库也都与本地同步,同步是实时的。当我加载页面时,同步开始,但每秒钟我在控制台日志中看到很多错误。

enter image description here

这些错误使用了大量的内存(我的Chrome标签页在20分钟后使用了约800 MB的内存)。我该如何防止这种情况发生?问题在于我的JavaScript配置是

var syncOptions = {
    live: true,
    retry: true
};
var localDB = new PouchDB("building");
var remoteDB = new PouchDB("http://xxx.azure.com:4984/building");
localDB.sync(remoteDB, syncOptions);

如果我将“retry”值设置为false,则没有问题,但是实时同步不起作用;如果我将“retry”值设置为true,则我的页面每秒会生成约4个错误(因为我正在同步4个数据库)。我能做什么?谢谢。
编辑: 我正在使用pouchdb-5.4.1.js。

1
它们并不是真正的错误;正如消息所说,PouchDB只是在服务器上检查保存的复制检查点,当没有检查点时,浏览器最终会记录404响应状态的错误。这只会在第一次复制时发生;之后,PouchDB会保存检查点,日志就不应该再出现了。这似乎与PouchDB有关,而我对此并不了解(我在Couchbase Mobile上工作)。 - Jens Alfke
是的,我知道这些并不是真正的错误,但是这些“非错误”就像口渴的母狗一样...因为应用程序无法使用,我遇到了很多问题...是否有任何好的替代方案可以用于服务器-客户端同步,而不是使用PouchDB?谢谢。 - Mauro Sala
如果您想要在常规网页中运行某些东西,PouchDB 是我所知道的唯一选择。如果您可以使用应用程序容器(如 PhoneGap),则可以使用 Couchbase Lite 插件。 - Jens Alfke
我正在使用相同的配置(好吧,只有一个数据库),并且刚刚从PouchDB 4.0.1更新到5.4.4。现在,每隔几秒钟,我都会看到相同的消息。以前(在4.0.1上)当首次复制时,我会看到两三条这样的消息,然后就不会再有了。这对我来说似乎是PouchDB中潜入的错误。我将尝试一些在4.0.1和5.4.4之间的其他版本,并查看是否能找出发生错误的时候。您正在使用哪个版本? - giles123
我可以确认(至少对我而言),在PouchDB 5.0.0和5.1.0之间,这种行为是不同的。使用5.0.0时,在我首次复制数据库时,我会看到几条这样的消息;而在5.1.0中,我会持续看到这些消息。 - giles123
1个回答

1
正如控制台所提示的那样,这些不是错误(我的意思是,它们是错误,但这是完全正常的)。发生这种情况的原因是PouchDB没有得到Couchbase Sync Gateway的官方支持。因此,为了使其有效支持,PouchDB在Couchbase服务器上创建了自己的里程碑。通常,您应该在路径“_local”、“_bulk_get”和“_all_docs”上看到很多错误。这是由于Couchbase Sync Gateway和PouchDB之间的集成问题。但是,如果您正确编写了同步函数,就没有什么可担心的。它应该能够完成工作,尽管不如我们希望的那样有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接