Массовая загрузка: проверка выполнения всех заданий BulkProcessor (Java Client API) - PullRequest
0 голосов
/ 13 ноября 2018

Я хочу создать процесс, который загружает данные в ES так, чтобы

  1. Существует два индекса: index_1, index_2 и псевдоним, который указывает на index_1 или index_2
  2. Данные массово загружаются в index_1 или index_2
  3. Если все данные загружены без сбоев, псевдоним изменяется

Я использую Java Client API.

Я хотел бы быть уверен, что когда я добавляю данные в BulkProcessor, он завершил все задания, прежде чем я продолжу оценивать наличие ошибок. Я отслеживаю сбои в BulkProcessor.Listener.afterBulk.

В моей текущей тестовой реализации, когда все данные передаются в BulkProcessor, я вызываю BulkProcessor.flush (), а затем добавляю тайм-аут (просто чтобы убедиться), прежде чем проверять, записал ли afterBulk какие-либо сбои.

Но вопрос в следующем: : Что я могу сделать, чтобы убедиться, что у BulkProcessor не осталось заданий и все выполненные запросы IndexRequest были выполнены?

1 Ответ

0 голосов
/ 17 декабря 2018

В Java Client API нет механизма для проверки размера массовой очереди. Вы можете самостоятельно отслеживать добавленные идентификаторы и идентификаторы, помеченные как готовые (afterBulk).

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