Golang实践经验和教训( 六 )

TimeoutHandler包含回调函数 , session表示任务运行的会话 , 持续时间(duration)以及指向已调度计时器的timer指针 。

有一个全局映射 , 该映射将为每个相邻的链接会话存储计划的超时处理程序 。

SessionTimeout map[Session
*TimeoutHandler

通过以下方法可以注册和取消超时:

// schedules the timeout callback function.

func (timeout* TimeoutHandler) Register() {

timeout.timer = time.AfterFunc(time.Duration(timeout.duration) * time.Second func() {

timeout.callback(timeout.session)

)

对于超时的创建和存储 , 可以使用如下方法:

func CreateTimeoutHandler(callback func(Session) session Session duration int) *TimeoutHandler {

推荐阅读