我需要将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(
{ "key", 0 },
{
{"+", stat.COUNT, 1}
})
end
return
end
stat
空间时。 box.info.ro == False
上设置它,则会跳过Replication_sync。我发现最合适的触发时间是box.info.status
从loading
更改为running
的时刻。我可以解决this之类的问题。但我想知道哪里有更好的方法?
我考虑过在box.info.status
字段上设置回调函数。我该如何实现?
答案 0 :(得分:0)
我能想到的最简单的方法是生成一个光纤,该光纤会定期检查更改并在检测到更改时运行回叫。
答案 1 :(得分:0)
您做错了。如果要等待实例离开只读模式,则有box.ctl.wait_ro()。如果要等待引导结束,请将代码放在box.cfg之后。最后,如果要捕获模式初始化事件,请设置box.ctl.on_schema_init触发器。 请描述您到底要完成什么,并且将有一个适当的工具。