Перечисление активных репликаций в couchdb 1.1.0 - PullRequest
3 голосов
/ 13 сентября 2011

Я загружаю репликации в couchdb, отправив сообщение на localhost: 5984 / _replicate. Этот URL принимает только запросы POST.

Существует также второй URL: localhost: 5984 / _replicator, который принимает запросы PUT, GET и DELETE.

Когда я настраиваю репликацию POSTing на _replicate, она запускается, но я не могу получить информацию об этом. Он также не указан в _replicator.

  • Как получить список активных репликаций?
  • Как я могу отменить активную репликацию?

Редактировать: как запускать репликации с помощью метода _replicator.

Благодаря комментариям JasonSmith я получил следующее решение: PUTting для _replicator требует использования полного URL (включая учетные данные аутентификации) для целевой базы данных. Это не тот случай, когда используется _replicate url, который рад получить только имя целевой базы данных (я говорю здесь о pull-репликациях). Причина, насколько я могу судить, объясняется здесь (см. Раздел 8, «Свойство user_ctx и делегирование»)

1 Ответ

7 голосов
/ 13 сентября 2011

Исходный API был специальным URL, /_replicate, где вы говорите Couch, что делать, и он сообщает вам результат. Однако более новая система представляет собой обычную базу данных, которая называется /_replicator, и вы создаете документы внутри нее, сообщая Couch, что делать. Формат документа такой же, как и у более старого формата _replicate, однако CouchDB обновит документ по мере продолжения репликации. (Например, будет добавлено поле "state":"triggered" или "state":"complete" и т. Д.)

Чтобы получить список активных репликаций, GET /_active_tasks в качестве администратора сервера. Например (в формате):

curl http://admin:secret@localhost:5984/_active_tasks
[ { "type": "Replication"
  , "task": "`1bea06f0596c0fe6a1371af473a95aea+create_target`: `http://jhs.iriscouch.com/iris/` -> `iris`"
  , "started_on": 1315877897
  , "updated_on": 1315877898
  , "status": "Processed 83 / 119 changes"
  , "pid": "<0.224.0>"
  }

, { "type": "Replication"
  , // ... etc ...
  }
]

В вики есть инструкции отменить репликацию CouchDB . По сути, вы хотите указать тот же источник и цель, а также добавить "cancel":true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...