diff --git a/examples/cluster1.lua b/examples/cluster1.lua index 0eca6176..70d20044 100644 --- a/examples/cluster1.lua +++ b/examples/cluster1.lua @@ -3,6 +3,11 @@ local cluster = require "cluster" local snax = require "snax" skynet.start(function() + cluster.reload { + db = "127.0.0.1:2528", + db2 = "127.0.0.1:2529", + } + local sdb = skynet.newservice("simpledb") -- register name "sdb" for simpledb, you can use cluster.query() later. -- See cluster2.lua diff --git a/examples/config.c1 b/examples/config.c1 index 436859d4..0ebb4e9c 100644 --- a/examples/config.c1 +++ b/examples/config.c1 @@ -6,5 +6,6 @@ bootstrap = "snlua bootstrap" -- The service for bootstrap luaservice = "./service/?.lua;./test/?.lua;./examples/?.lua" lualoader = "lualib/loader.lua" cpath = "./cservice/?.so" -cluster = "./examples/clustername.lua" +-- use cluster.reload instead, see cluster1.lua +-- cluster = "./examples/clustername.lua" snax = "./test/?.lua" diff --git a/lualib/cluster.lua b/lualib/cluster.lua index 9883227f..3b180753 100644 --- a/lualib/cluster.lua +++ b/lualib/cluster.lua @@ -21,8 +21,8 @@ function cluster.open(port) end end -function cluster.reload() - skynet.call(clusterd, "lua", "reload") +function cluster.reload(config) + skynet.call(clusterd, "lua", "reload", config) end function cluster.proxy(node, name) diff --git a/service/clusterd.lua b/service/clusterd.lua index 22d5e9f0..20c43ee7 100644 --- a/service/clusterd.lua +++ b/service/clusterd.lua @@ -29,12 +29,16 @@ end local node_channel = setmetatable({}, { __index = open_channel }) -local function loadconfig() - local f = assert(io.open(config_name)) - local source = f:read "*a" - f:close() - local tmp = {} - assert(load(source, "@"..config_name, "t", tmp))() +local function loadconfig(tmp) + if tmp == nil then + tmp = {} + if config_name then + local f = assert(io.open(config_name)) + local source = f:read "*a" + f:close() + assert(load(source, "@"..config_name, "t", tmp))() + end + end for name,address in pairs(tmp) do assert(type(address) == "string") if node_address[name] ~= address then @@ -47,8 +51,8 @@ local function loadconfig() end end -function command.reload() - loadconfig() +function command.reload(source, config) + loadconfig(config) skynet.ret(skynet.pack(nil)) end