mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-22 02:53:09 +00:00
add response test mode
This commit is contained in:
@@ -178,6 +178,23 @@ function suspend(co, result, command, param, size)
|
||||
end
|
||||
local f = param
|
||||
local function response(ok, ...)
|
||||
if ok == "TEST" then
|
||||
if dead_service[co_address] then
|
||||
release_watching(co_address)
|
||||
f = false
|
||||
return false
|
||||
else
|
||||
return true
|
||||
end
|
||||
end
|
||||
if not f then
|
||||
if f == false then
|
||||
f = nil
|
||||
return false
|
||||
end
|
||||
error "Can't response more than once"
|
||||
end
|
||||
|
||||
local ret
|
||||
if not dead_service[co_address] then
|
||||
if ok then
|
||||
|
||||
44
test/testecho.lua
Normal file
44
test/testecho.lua
Normal file
@@ -0,0 +1,44 @@
|
||||
local skynet = require "skynet"
|
||||
|
||||
local mode = ...
|
||||
|
||||
if mode == "slave" then
|
||||
|
||||
skynet.start(function()
|
||||
skynet.dispatch("lua", function(_,_, ...)
|
||||
skynet.ret(skynet.pack(...))
|
||||
end)
|
||||
end)
|
||||
|
||||
else
|
||||
|
||||
skynet.start(function()
|
||||
local slave = skynet.newservice(SERVICE_NAME, "slave")
|
||||
local n = 100000
|
||||
local start = skynet.now()
|
||||
print("call salve", n, "times in queue")
|
||||
for i=1,n do
|
||||
skynet.call(slave, "lua")
|
||||
end
|
||||
print("qps = ", n/ (skynet.now() - start) * 100)
|
||||
|
||||
start = skynet.now()
|
||||
|
||||
local worker = 10
|
||||
local task = n/worker
|
||||
print("call salve", n, "times in parallel, worker = ", worker)
|
||||
|
||||
for i=1,worker do
|
||||
skynet.fork(function()
|
||||
for i=1,task do
|
||||
skynet.call(slave, "lua")
|
||||
end
|
||||
worker = worker -1
|
||||
if worker == 0 then
|
||||
print("qps = ", n/ (skynet.now() - start) * 100)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user