Я хочу реализовать функцию init в box.once () , чтобы она выполнялась только один раз в Tarantool, однако это полезно для меня, только если init выполнен успешно.
Вопрос : Как сделать запись « onceinit » действительной только в том случае, если инициализация прошла успешно ??
Чтобы воспроизвести case :
Следующий код функции init завершается ошибкой, потому что нет функции create_space_BAD , однако при сканировании схемы она регистрируется как выполняемая.
Есть предложения, как это исправить?
Код:
local function start()
box.cfg{}
box.once('init', function()
if not pcall(box.schema.create_space_BAD, 'myspace') then
print('ERROR: create_space_BAD NOT EXIST')
return false
end
...
end)
end
Схема исследования:
tarantool> box.space._schema:select{}
---
- - ['cluster', '1cb21086-51a3-46fb-900e-1983609fc396']
- ['max_id', 511]
- ['onceinit']
- ['version', 1, 10, 2]
...