在过去的几个月里,我们已经收取了许多我们在Cloudant上没有预料到的HTTP请求。通过在本地查看CouchDB控制台,我发现每次连续复制时,每隔5秒就会发出一次GET请求。
我已经停止了在Futon中可以找到的所有连续复制,并且我对我们拥有的每个Cloudant帐户都做了相同的操作。通过查看Cloudant的仪表板,我看到GET请求减少了(数千个),但没有达到合理的水平。所以必须有一些连续的复制,但我找不到它们。
如何找到并停止剩余的复制?
答案 0 :(得分:1)
要识别可能对用户隐藏的连续复制,最好的方法是查询curl命令,调用_active_tasks并应用jq过滤器以仅显示“复制”类型的任务。
也就是说,在命令行中,运行以下格式的命令:
curl 'https://username:password@username.cloudant.com/databasename/_active_tasks | jq 'map(select(.type == "replication"))'
可以应用相同的方法来检索其他活动任务(view_compaction,database_compaction等)
也就是说,通常,使用_replicator数据库时,基于Cloudant的复制更加顺畅。为此:
1)作为初始的一次性任务,创建数据库:
https://username.cloudant.com/_replicator
2)然后,为每次复制创建一个文档。如果你有“连续”:在文档中为true,它将被视为连续的。
3)然后,要取消复制,只需删除文档即可。
所有上述命令(例如创建和删除文档)都在Cloudant的网站以及Stack Overflow中得到了很好的记录,因此请参阅其中以获取更多详细信息。
最后,必须添加 usr_ctx 字段,以便在用户上下文中触发并运行复制。这很重要,以便在您查询_active_tasks时显示,否则它将匿名运行,并且只有在管理员查询时才会显示在_active_tasks中。这正是原始海报的情况。