悬挂在Cloudant上的复制品

mll*_*mll 5 couchdb cloudant

在过去的几个月里,我们已经收取了许多我们在Cloudant上没有预料到的HTTP请求.通过在本地查看CouchDB控制台,我发现每次连续复制时,每隔5秒钟就会发出一次GET请求.

我已经停止了在Futon中可以找到的所有连续复制,并且我对我们拥有的每个Cloudant帐户都做了相同的操作.通过查看Cloudant的仪表板,我看到GET请求减少了(数千个),但没有达到合理的水平.所以必须有一些连续的复制,但我找不到它们.

如何找到并停止剩余的复制?

小智 1

要识别可能对用户隐藏的连续复制,最好的方法是查询curl命令,调用_active_tasks,并应用jq过滤器以仅显示那些“复制”类型的任务。

也就是说,在命令行中,运行以下形式的命令:

curl 'https://username:password@username.cloudant.com/databasename/_active_tasks | jq 'map(select(.type == "replication"))'
Run Code Online (Sandbox Code Playgroud)

可以应用相同的方法来检索其他活动任务(view_compaction、database_compaction 等)


也就是说,一般来说,使用 _replicator 数据库时,基于 Cloudant 的复制要顺畅得多。为此:

1) 作为一项初始一次性任务,创建数据库:

 https://username.cloudant.com/_replicator 
Run Code Online (Sandbox Code Playgroud)

2) 然后,为每个复制创建一个文档。如果文档中有“连续”:true,它将被视为连续。

3) 然后,要取消复制,您只需删除该文档即可。

所有上述命令(例如创建和删除文档)在 Cloudant 网站以及整个 Stack Overflow 上都有详细记录,因此请参阅那里以了解更多详细信息。

最后,必须添加usr_ctx字段,以便触发复制并在您的用户上下文中运行。这很重要,因此它会在您查询 _active_tasks 时显示,否则它将匿名运行,并且仅在管理员查询时才显示在 _active_tasks 中。这正是原海报所发生的情况。