Update 06.2.md

fix session销毁的*Manager#GC()直接执行
This commit is contained in:
胡子豪
2021-03-02 21:01:59 +08:00
committed by GitHub
parent 72d959bfa7
commit 338e5c4b8b

View File

@@ -217,8 +217,7 @@ func init() {
func (manager *Manager) GC() { func (manager *Manager) GC() {
manager.lock.Lock() manager.lock.Lock()
defer manager.lock.Unlock() defer manager.lock.Unlock()
manager.provider.SessionGC(manager.maxLifeTime) time.AfterFunc(time.Duration(manager.maxLifeTime), func() { manager.provider.SessionGC(manager.maxLifeTime) })
time.AfterFunc(time.Duration(manager.maxLifeTime), func() { manager.GC() })
} }
``` ```
我们可以看到GC充分利用了time包中的定时器功能当超时`maxLifeTime`之后调用GC函数这样就可以保证`maxLifeTime`时间内的session都是可用的类似的方案也可以用于统计在线用户数之类的。 我们可以看到GC充分利用了time包中的定时器功能当超时`maxLifeTime`之后调用GC函数这样就可以保证`maxLifeTime`时间内的session都是可用的类似的方案也可以用于统计在线用户数之类的。