skynet:服务重入问题

一个服务在接收到请求后,会对该请求进行处理,在处理的过程中,能同时接收并处理后到达的请求。

一、测试脚本

修改文章:skynet:session 中的测试脚本:echoluamsg.lua 与 testforkcall.lua:

echoluamsg.lua

skynet = require "skynet"
require "skynet.manager"


local command = {}

function command.func1()
         skynet.sleep(2000)
         return 1
end

function command.func2()
        return 2
end


skynet.start(function()
        skynet.register("echoluamsg")

        skynet.dispatch("lua", function(session, address, cmd)
                local f = command[cmd]
                 if f then
                         print(cmd .. " start")

                         ret = f()
                         skynet.retpack(ret)

                         print(cmd .. " end, ret:" .. ret)
                  end
        end)
end)

testforkcall.lua

skynet = require "skynet"


local function task()
        local r = skynet.send("echoluamsg", "lua", "func1")
        skynet.error("func1 return:", r)

        r = skynet.call("echoluamsg", "lua", "func2")
        skynet.error("func2 return:", r)
end

skynet.start(function()
        skynet.fork(task)
end)

testforkcall 先后使用 skynet.send() 与 skynet.call() 向服务 echoluamsg 发送请求。

二、测试结果

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值