Lua 是否在tarantool中更改box.info字段上设置触发器?
我需要捕获正在将box.info.status从“正在加载”更改为“准备就绪”。因此,我可以在WAL读取之后,但在复制同步之前启用触发器Lua 是否在tarantool中更改box.info字段上设置触发器?,lua,tarantool,Lua,Tarantool,我需要捕获正在将box.info.status从“正在加载”更改为“准备就绪”。因此,我可以在WAL读取之后,但在复制同步之前启用触发器 box.space.myspace上的我的触发器函数: local function before_replace(old, new) -- collision resolving here if box.session.type() ~= 'applier' then box.space.stat:upsert(
box.space.myspace上的我的触发器函数
:
local function before_replace(old, new)
-- collision resolving here
if box.session.type() ~= 'applier' then
box.space.stat:upsert(
{ "key", 0 },
{
{"+", stat.COUNT, 1}
})
end
return
end
- 如果我在模式初始化时设置触发器,它将以只读方式失败
错误。在尝试向上插入只读
space时李>stat
- 如果我将其设置为
它将跳过复制\u同步box.info.ro==False
box.info.status
从load
更改为running
。我像你一样解决我的问题。但我想知道哪里有更好的方法
我考虑在
box.info.status
字段上设置回调函数。我如何才能做到这一点呢?我能想到的最简单的方法是生成一个光纤,它定期检查更改,并在检测到更改时运行回拨。你做错了。如果要等待实例离开只读模式,则有box.ctl.wait_ro()。如果要等待引导结束,请将代码放在box.cfg之后。最后,如果要捕获模式初始化事件,可以设置box.ctl.on_schema_init trigger。
请准确描述您正试图完成的任务,并为其提供适当的工具。我修正了描述。想知道哪里有更合适的工具?