marklogic QueryBatcher.onUrisReady, что происходит, когда документ не существует - PullRequest
0 голосов
/ 19 марта 2019

Я использую Marklogic 9.0-8 на Windows. Я пытаюсь использовать клиентский API ava, queryBatcher для запроса базы данных для списка Uris. Урис я уже знаю. поэтому мой код похож на

        QueryBatcher batcher = dmm.newQueryBatcher(uriList.iterator());
        batcher.withBatchSize(ASYNC_BATCH_SIZE)
        .withThreadCount(ASYNC_BATCH_THREAD_COUNT)
        .withConsistentSnapshot()
        .onUrisReady(
                new ExportListener()
                .withTransform(txForm)
                .onFailure((batch, throwable) -> {
                    logger.error("failure--ExportListener.onFailure exception: " + batch.getTimestamp().getTime() + "  Batch # " + batcher.getJobId(), throwable );
                   }
                )
                .onDocumentReady(
                        doc-> {
                            logger.info("success -- writing doc {}", doc.getUri());
                        }))
        .onQueryFailure(exception -> logger.error("failure QueryBatcher.onQueryFailure Exception happened", exception));

когда мой список uri содержит uri, которого нет в базе данных marklogic, не генерируется исключение и не происходит событие onFailure ().

Как я узнаю, что URI не существует в marklogic или пропущен по какой-либо причине? Мне нужно знать Uris, которого нет в документе, но я не могу найти какой-либо метод, который позволил бы мне подключить слушатель для этой ситуации.

Кто-нибудь может дать мне любые подсказки?

Спасибо, Хелен

...