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.
-- See cluster2.lua
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", "b", "foobar2"))

View File

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

View File

@@ -204,6 +204,18 @@ function command.register(source, name, addr)
skynet.error(string.format("Register [%s] :%08x", name, addr))
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)
skynet.ret(skynet.pack(register_name[name]))
end