skynet 学习笔记 - 定时器

本章的内容是

  • 设置定时器
  • skynet.timeout
  • 定时器的实现
  • 伪取消定时器
设置定时器

在业务Lua代码里设置定时器的接口是

    -- 参数 ti: number
    -- 参数 func: function
    -- 框架在 ti 个单位时间后,调用 func 这个函数。
    skynet.timeout(ti, func)

定时器实现的非常高效,一般不用太担心性能问题。

如果你的服务想大量使用定时器的话,可以考虑:在一个服务里,只使用一个 skynet.timeout,用它来触发自己的定时事件模块。

skynet.timeout

skynet.timeout 实现

function skynet.timeout(ti, func)
    local session = c.intcommand("TIMEOUT",ti)
    assert(session)
    local co = co_create(func)
    assert(session_id_coroutine[session] == nil)
    session_id_coroutine[session] = co

你可能感兴趣的:(技术,lua,skynet)