mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-22 02:53:09 +00:00
service.lua可以在用一个服务中复用
This commit is contained in:
@@ -1,7 +1,23 @@
|
||||
local skynet = require "skynet"
|
||||
local kvdb = require "kvdb"
|
||||
|
||||
local function dbname(i)
|
||||
return "db"..i
|
||||
end
|
||||
skynet.start(function()
|
||||
kvdb.set("A", 1)
|
||||
print(kvdb.get "A")
|
||||
for i=1,10 do
|
||||
kvdb.new(dbname(i))
|
||||
end
|
||||
local idx=1
|
||||
for i=1,10 do
|
||||
local db=dbname(i)
|
||||
kvdb.set(db,"A",idx)
|
||||
idx=idx+1
|
||||
kvdb.set(db,"B",idx)
|
||||
idx=idx+1
|
||||
end
|
||||
for i=1,10 do
|
||||
local db=dbname(i)
|
||||
print(db,kvdb.get(db,"A"),kvdb.get(db,"B"))
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -3,13 +3,12 @@ local service = require "skynet.service"
|
||||
|
||||
local kvdb = {}
|
||||
|
||||
-- service.address is the default address registered by itself.
|
||||
function kvdb.get(key)
|
||||
return skynet.call(service.address, "lua", "get", key)
|
||||
function kvdb.get(db,key)
|
||||
return skynet.call(service.query(db), "lua", "get", key)
|
||||
end
|
||||
|
||||
function kvdb.set(key, value)
|
||||
skynet.call(service.address, "lua", "set", key , value)
|
||||
function kvdb.set(db,key, value)
|
||||
skynet.call(service.query(db), "lua", "set", key , value)
|
||||
end
|
||||
|
||||
-- this function will be injected into an unique service, so don't refer any upvalues
|
||||
@@ -36,8 +35,8 @@ local function service_mainfunc(...)
|
||||
end)
|
||||
end
|
||||
|
||||
skynet.init(function()
|
||||
service.new("kvdb", service_mainfunc, "Service Init")
|
||||
end)
|
||||
function kvdb.new(db)
|
||||
return service.new(db, service_mainfunc, "Service Init")
|
||||
end
|
||||
|
||||
return kvdb
|
||||
|
||||
Reference in New Issue
Block a user