Здравствуйте.
Прощу прощения за нубизм, но не могу разобраться с сабжем.
В php скрипте необходимо выполнить bulk запрос и дождаться, пока он весь выполнится. Для работы с ES используется их официальная либа. Как я понял из доков, для решения можно воспользоваться
Future Mode. Но не получается правильно ее применить. Использую так:
// вызов функций одну за другой
func_bulk();
func_search();
// выполнение запроса
function func_bulk()
{
$params['client'] = [
'future' => 'lazy'
];
$response = $this->elastic->bulk($params);
while ($response instanceof FutureArray) {
$response = $response->wait();
}
}
// поиск того, что сделано в func_bulk()
function func_search()
{
$params = [
'index' => 'my_index',
'type' => 'my_type',
'id' => 'my_id'
];
$response = $client->get($params);
}
func_search()
ничего не находит, т.к. документы еще не проиндексировались. Если перед функцией вставить залипень типа
sleep(5)
, всё находит, но это несерьезно. Как же все-таки дождаться пока ES закончит свои дела?