NetBox 2.7 使用手册

OnServiceTimer 事件

服务定时器事件

语法

Sub OnServiceTimer
...
End Sub

注释

当满足下面三个条件时,将触发 OnServiceTimer 事件:

1. 使用 Service.SetTimer 方法设定了定时器,且 nElapse 不为 -1
2. 进入服务等待,且服务没有被暂停
3. 从上次触发开始已经间隔了 nElapse 设定的毫秒数

示例

下面的例子使用 OnServiceTimer 事件在每天上午 7 点做一次数据同步操作。由于系统原因,SetTimer 不是精确定时器,不能依赖 SetTimer 实现精确时钟,所以需要自行实现时间判断。

Set service = Shell.Service

service.Name = "MySrv"
service.DisplayName = "My Service Application"

NextSynch = DateAdd("h", 7, Date)
If Now > NextSynch Then NextSynch = DateAdd("d", 1, NextSynch)

service.SetTimer 1000
service.DoEvents

'---------------------- Service Event ---------------------

Sub OnServiceTimer
    If Now > NextSynch Then
        ' Do Synch
        '......
        DateAdd("d", 1, NextSynch)
    End If
End Sub

上面的例子中,在初始化的时候先设定下次同步的时间,然后在每次定时器事件中判断当前时间是不是已经超过这个时间,如果超过,则进行同步操作,最后将下次同步时间更新为第二天的 7 点。

应用于

Service 对象
版权所有: 2003- 网络盒子