mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-24 20:23:06 +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.
|
-- 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"))
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user