feat: add cluster.unregister (#1563)

This commit is contained in:
JTrancender
2022-04-02 12:17:47 +08:00
committed by GitHub
parent f72573a2aa
commit b555aa19e7
3 changed files with 19 additions and 0 deletions

View File

@@ -12,6 +12,8 @@ skynet.start(function()
-- register name "sdb" for simpledb, you can use cluster.query() later. -- register name "sdb" for simpledb, you can use cluster.query() later.
-- See cluster2.lua -- See cluster2.lua
cluster.register("sdb", sdb) cluster.register("sdb", sdb)
cluster.unregister("sdb")
cluster.register("sdb", sdb)
print(skynet.call(sdb, "lua", "SET", "a", "foobar")) print(skynet.call(sdb, "lua", "SET", "a", "foobar"))
print(skynet.call(sdb, "lua", "SET", "b", "foobar2")) print(skynet.call(sdb, "lua", "SET", "b", "foobar2"))

View File

@@ -106,6 +106,11 @@ function cluster.register(name, addr)
return skynet.call(clusterd, "lua", "register", name, addr) return skynet.call(clusterd, "lua", "register", name, addr)
end end
function cluster.unregister(name)
assert(type(name) == "string")
return skynet.call(clusterd, "lua", "unregister", name)
end
function cluster.query(node, name) function cluster.query(node, name)
return skynet.call(get_sender(node), "lua", "req", 0, skynet.pack(name)) return skynet.call(get_sender(node), "lua", "req", 0, skynet.pack(name))
end end

View File

@@ -204,6 +204,18 @@ function command.register(source, name, addr)
skynet.error(string.format("Register [%s] :%08x", name, addr)) skynet.error(string.format("Register [%s] :%08x", name, addr))
end end
function command.unregister(_, name)
if not register_name[name] then
return skynet.ret(nil)
end
local addr = register_name[name]
register_name[addr] = nil
register_name[name] = nil
clearnamecache()
skynet.ret(nil)
skynet.error(string.format("Unregister [%s] :%08x", name, addr))
end
function command.queryname(source, name) function command.queryname(source, name)
skynet.ret(skynet.pack(register_name[name])) skynet.ret(skynet.pack(register_name[name]))
end end