mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-22 02:53:09 +00:00
feat: add cluster.unregister (#1563)
This commit is contained in:
@@ -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"))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user