Вложенный модуль box.ctl
The wait_ro
(wait until read-only) and wait_rw
(wait until read-write) functions
are useful during server initialization.
To see whether a function is already in read-only or read-write mode, check box.info.ro.
Для box.once() есть особое предназначение. Например, при инициализации реплика может вызвать функцию box.once()
, пока сервер все еще находится в режиме только для чтения, и не сможет применить изменения однократно до окончательной инициализации реплики. Это может привести к конфликту между мастером и репликой, если мастер находится в режиме чтения и записи, а реплика доступна только для чтения. Ожидание условия «read only mode = false» (режим только для чтения отключен) решает эту проблему.
Ниже приведен перечень всех функций модуля box.ctl
.
Имя | Использование |
---|---|
box.ctl.wait_ro() | Дождаться, пока не будет выполнено box.info.ro |
box.ctl.wait_rw() | Дождаться, пока не перестанет соблюдаться box.info.ro |
box.ctl.on_schema_init() | Создать «schema_init триггер» |
box.ctl.on_shutdown() | Создать «shutdown триггер» |
box.ctl.on_recovery_state() | Create a trigger executed on different stages of a node recovery or initial configuration |
box.ctl.on_election() | Create a trigger executed every time the current state of a replica set node in regard to leader election changes |
box.ctl.set_on_shutdown_timeout() | Set a timeout in seconds for the on_shutdown trigger |
box.ctl.is_recovery_finished() | Check if recovery has finished |
box.ctl.promote() | Wait, then choose replication leader |
box.ctl.demote() | Revoke the leader role from the instance |