Команда ReQL: wait
Синтаксис команды
table.wait([{waitFor: 'all_replicas_ready', timeout: <sec>}]) → object
database.wait([{waitFor: 'all_replicas_ready', timeout: <sec>}]) → object
r.wait(table | database, [{waitFor: 'all_replicas_ready', timeout: <sec>}]) → object
Описание
Ожидание готовности таблицы или всех таблиц в базе данных. Таблица может временно быть недоступной после создания, перебалансировки или переконфигурирования. Команда wait блокируется, пока указанная таблица (или база данных) не будет полностью обновлена.
Команда wait принимает два необязательных аргумента:
-
waitFor: строка, указывающая таблицу статус, на которую нужно подождать, прежде чем вернуть результат, одна изready_for_outdated_reads,ready_for_reads,ready_for_writes, илиall_replicas_ready. По умолчаниюall_replicas_ready. -
timeout: число, указывающее максимальное время в секундах ожидания готовности таблицы. Если это значение будет превышено, будет выброшено исключениеReqlRuntimeError. Значение0означает отсутствие таймаута. По умолчанию0(без таймаута).
Возвращаемое значение — объект, содержащий единственное поле ready. Значение — целое число, указывающее количество таблиц, на которые ожидалось. Оно всегда равно 1 при вызове wait для таблицы и общему количеству таблиц при вызове для базы данных.
Версии RethinkDB до 2.3 позволяли вызывать
waitбез указания таблицы или базы данных. Это больше не допускается;waitтребует явного выбора базы данных или таблицы.
Пример: Ожидание готовности таблицы.
> r.table('superheroes').wait().run(conn, callback);
// Result passed to callback
{ "ready": 1 }
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/javascript/wait/