Есть ли способ проверить, завершил ли Elasticsearch обработку моего запроса?
Я хочу выполнить интеграционные тесты для своего приложения, чтобы проверить, можно ли найти запись после вставки. Например, если я делаю следующий запрос:
POST /_all/_bulk
{
"update":{
"_id":419,
"_index":"popc",
"_type":"offers"
}
}
{
"doc":{
"id":"419",
"author":"foo bar",
"number":"642-00419"
},
"doc_as_upsert":true
}
И я сразу проверяю, тест не проходит, потому что Elasticsearch требует некоторое время для выполнения моего запроса.
Если я засыпаю на 1 секунду перед утверждением, это работает большую часть времени, но не всегда.
Я мог бы продлить время сна, например. 3 секунды, но это делает тесты очень медленными, отсюда и мой вопрос.
Я пытался использовать отложенные задачи и конечные точки ожидающих выполнения задач кластера, но ответы всегда пусты.
Если что-то из этого имеет значение, я использую Elasticsearch 5.4
, Laravel Scout 3.0.5
и tamayo/laravel-scout-elastic 3.0.3