我正在致力于实现一个进度条,以显示远程 CouchDB 数据库和本地浏览器托管的 PouchDB 数据库之间的复制进度。
目前,我使用每个数据库中的文档数量来确定进度百分比。但是,如果任一数据库中替换了大量记录,则此百分比进度就不准确。
我想使用一些其他值来显示复制进度。复制完成后,我可以指望已完成复制的两个数据库的序列号相同吗?
最佳答案
您可以使用active tasks您的案例的终点。除此之外,它还包括任务的进度百分比。例如,复制任务将如下所示
{
"checkpointed_source_seq": 68585,
"continuous": false,
"doc_id": null,
"doc_write_failures": 0,
"docs_read": 4524,
"docs_written": 4524,
"missing_revisions_found": 4524,
"pid": "<0.1538.5>",
"progress": 44**,
"replication_id": "9bc1727d74d49d9e157e260bb8bbd1d5",
"revisions_checked": 4524,
"source": "mailbox",
"source_seq": 154419,
"started_on": 1376116644,
"target": "http://mailsrv:5984/mailbox",
"type": "replication",
"updated_on": 1376116651
}
更新序列号特定于数据库。假设数据库中有 9 个文档,其 update_seq 为 17。update_seq 表示数据库已更新 17 次,即使文档数为 9。现在,如果将其复制到一个空的新数据库,则 update_seq新数据库的数量将为 9,因为它只更新了 9 次。由于新数据库为空,仅创建了 9 个新文档。
如果它包含一些文档,那么更新编号将会有所不同,具体取决于它们的_rev。因此不能依赖 update_seq 来计算复制操作的进度。
关于progress-bar - 复制成功后,两个CouchDB数据库是否保证具有相同的序列号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29218445/