Return a CompletableFuture from BulkIngester.flush method #806
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Issue
In one case in our production app, we want to
flush
the bulk operations and make them immediately available for search. So, we do aflush
on ourBulkIngester
instance, then we do aclient.indices().refresh()
. However, because theflush
operation is asynchronous, most of the time before all the operations flush, therefresh
gets called. So, some of the changes aren't immediately available for search.The Solution
I returned a
CompletableFuture
from theflush
method, so the user can wait for theflush
to finish if required.Documents
Sorry, I couldn't find where's the document for the
flush
method so I could update it. If you point me to it, I can update the return type there.gradlew check
There are nine failing tests. But they were failing before my changes too.