定时器的使用

timer.lua

对skynet的定时器做了基础封装,提供了注销,延时,循环次数,获得下次触发的剩余时间等等功能。

注册

  • new(expire,times,callback,…)
    函数作用域:M 对象的成员函数
    函数名称:new
    描述: 创建一个定时器对象
    参数:
    - expire (number): 过期时间 100等于1秒
    - times (number): 次数,0表示循环触发
    - callback (function): 回调函数
    - … 回调参数

  • cancel()
    函数作用域:M:new 对象的成员函数
    函数名称:cancel
    描述: 取消定时器

  • after_next
    函数作用域:M:new 对象的成员函数
    函数名称:after_next
    描述: 之后下一次 : 回调函数执行完,再注册下一次,默认先注册下一次再执行回调

  • extend
    函数作用域:M:new 对象的成员函数
    函数名称:extend
    描述: 延长定时器
    参数:
    - ex_expire (number): 延长时间 100等于1秒

  • remain_expire
    函数作用域:M:new 对象的成员函数
    函数名称:remain_expire
    描述: 剩余触发时间

timer_point

使用基础的timer.lua模块,封装的整点报时功能,功能的概念类似闹钟,比如设置每天下午2点半第30秒,就只需要这样设置。

1
2
3
4
5
6
7
8
9
10
11
12
local function call_back(a, b ,c, d)

end

local a,b,c,d = 1,2,3,4
local point = timer_point:new(time_point.EVERY_DAY)
:set_hour(14) --下午2点
:set_min(30) --30分
:set_sec(30) --30秒
:builder(call_back, a, b, c, d)

point:cancel() --取消整点报时

目前支持设置的时间刻度有:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
local M = {
--每分钟
EVERY_MINUTE = 1,
--每小时
EVERY_HOUR = 2,
--每天
EVERY_DAY = 3,
--每周
EVERY_WEEK = 4,
--每月 超过适配到最后一天
EVERY_MOUTH = 5,
--每年几月几日几时几分几秒 超过适配到最后一天
EVERY_YEAR = 6,
--每年的第几天 超过适配到最后一天
EVERY_YEAR_DAY = 7,
}
  • new(type)
    函数作用域:M 对象的成员函数
    函数名称:new
    描述: 创建整点报时对象
    参数:
    - type (number): 时间刻度类型

  • set_month
    函数作用域:M:new 对象的成员函数
    函数名称:set_month
    描述: 指定几月,如果刻度不是每年的话,这个设置没有作用
    参数:
    - month (number): 月份 1-12

  • set_day
    函数作用域:M:new 对象的成员函数
    函数名称:set_day
    描述: 每月第几天,超过适配到最后一天,比如设置31天,这月只有30天,适配到30天触发。
    参数:
    - day (number): 天数 1-31

  • set_hour
    函数作用域:M:new 对象的成员函数
    函数名称:set_hour
    描述: 几时
    参数:
    - hour (number): 几时 0-23

  • set_min
    函数作用域:M:new 对象的成员函数
    函数名称:set_min
    描述: 几分
    参数:
    - min (number): 几分 0-59

  • set_sec
    函数作用域:M:new 对象的成员函数
    函数名称:set_sec
    描述: 几秒
    参数:
    - sec (number): 几秒 0-59

  • set_wday
    函数作用域:M:new 对象的成员函数
    函数名称:set_wday
    描述: 周几(仅仅设置每周有效)
    参数:
    - wday (number): 周几 1-7 星期天为 1

  • set_yday
    函数作用域:M:new 对象的成员函数
    函数名称:set_yday
    描述: 一年第几天(仅仅设置每年第几天有效)
    参数:
    - yday (number): 第几天 1-366 超过适配到最后一天。

  • builder
    函数作用域:M:new 对象的成员函数
    函数名称:builder
    描述: 构建。
    参数:
    - callback (function): 回调函数。
    - … (any): 回调参数。


定时器的使用
https://huahua132.github.io/2024/01/21/skynet_fly_api/timer/
作者
huahua132
发布于
2024年1月21日
许可协议