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 {
推荐阅读
- 原神|原神:不要专门跑去抽4星,以前的教训,让人印象深刻
- 手机游戏|于月仙事件的惨痛教训:不要雇佣一个“手游上瘾”的人!
- edg战队|FPX战胜EDG打出3个名场面,圣枪哥装杯被新人教训,Viper化身院长
- RNG|没有吸取DK的教训?RNG差点“翻车”,米勒说出心里话
- 梦幻西游|梦幻西游:男子沉迷于游戏,半年亏掉30多万,血与泪的教训!
- 大话西游|大话西游2(299)痛的教训!02年老玩家提示不要拿垃圾刷熟练度啊
- 暴雪|暴雪吸取了教训,《暗黑破坏神2:复活》测试的效果还不错
- 我的世界|我的世界:10个“过来人”的经验教训,处理好细节才能笑到最后!
- 华为|又想骗中国放弃自研?特朗普同意解封华为,损失1000亿后买来教训
- 华为|台积电之后,美国瞄准中芯国际?华为余承东:这是教训!