MarkLogic: гармонизировать поток, чтобы пропустить писателя - PullRequest
0 голосов
/ 01 марта 2019

MarkLogic версия: 9.0-6.2

У нас есть согласованный поток, в котором мы готовим переменную 'source' в content.sjs для передачи в writer.sjs.У меня есть сценарий, в котором я должен пропустить программу записи (например, если документ уже содержит конечную базу данных, а отметка времени подготовки документа меньше, чем отметка времени в итоговом документе, то я не хочу записывать в окончательную версию)

Вот фрагмент кода в content.sjs

let source;
//logic to populate source
options.headers = source.envelope.headers;
return extractInstanceCustomer(source.envelope.instance);

Мы заметили, что иногда пропускается писатель, когда источник пуст.Как бы то ни было, в некоторых случаях Writer вызывается с пустым исходным кодом, и, следовательно, конверт создается с заголовками, но экземпляр пуст.

Мы пробовали ниже логику, но все еще не видели согласованного поведения.

let source;
//logic to populate source

if (fn.empty(source)) {
}
else {
  options.headers = source.envelope.headers;
  return extractInstanceCustomer(source.envelope.instance);
}

Каков наилучший способ пропустить программу записи, когда мы не хотим писать документ из постановки во время согласования потока.

1 Ответ

0 голосов
/ 01 марта 2019

Я думаю, что лучшее место, чтобы поместить эту логику, действительно в писателя.Там у вас есть все данные (заголовки, тройки, экземпляры и вложения), и у вас есть прямой доступ к данным в конечной базе данных, а также если вы хотите выполнить проверки на это тоже.

В качестве альтернативы можно поставитьлогика в основном гармонизирующем потоке.

HTH!

...