diff --git a/glc/ldb/storage/indexdoc/index_doc_storage.go b/glc/ldb/storage/indexdoc/index_doc_storage.go index 3bf3c67..26c75d1 100644 --- a/glc/ldb/storage/indexdoc/index_doc_storage.go +++ b/glc/ldb/storage/indexdoc/index_doc_storage.go @@ -80,19 +80,19 @@ func NewDocIndexStorage(storeName string, word string) *DocIndexStorage { // 存 mapStorage[cacheName] = store // 缓存起来 // 逐秒判断,若闲置超时则自动关闭 - go autoCloseWhenMaxIdle(store) + go store.autoCloseWhenMaxIdle() log.Println("打开DocIndexStorage:", cacheName) return store } -func autoCloseWhenMaxIdle(store *DocIndexStorage) { +func (s *DocIndexStorage) autoCloseWhenMaxIdle() { if conf.GetMaxIdleTime() > 0 { ticker := time.NewTicker(time.Second) for { <-ticker.C - if time.Now().Unix()-store.lastTime > int64(conf.GetMaxIdleTime()) { - store.Close() + if time.Now().Unix()-s.lastTime > int64(conf.GetMaxIdleTime()) { + s.Close() ticker.Stop() break } diff --git a/glc/ldb/storage/indexword/index_word_storage.go b/glc/ldb/storage/indexword/index_word_storage.go index 8c909f1..b855196 100644 --- a/glc/ldb/storage/indexword/index_word_storage.go +++ b/glc/ldb/storage/indexword/index_word_storage.go @@ -83,19 +83,19 @@ func NewWordIndexStorage(storeName string, word string) *WordIndexStorage { // mapStorage[cacheName] = store // 缓存起来 // 逐秒判断,若闲置超时则自动关闭 - go autoCloseWhenMaxIdle(store) + go store.autoCloseWhenMaxIdle() log.Println("打开WordIndexStorage:", cacheName) return store } -func autoCloseWhenMaxIdle(store *WordIndexStorage) { +func (s *WordIndexStorage) autoCloseWhenMaxIdle() { if conf.GetMaxIdleTime() > 0 { ticker := time.NewTicker(time.Second) for { <-ticker.C - if time.Now().Unix()-store.lastTime > int64(conf.GetMaxIdleTime()) { - store.Close() + if time.Now().Unix()-s.lastTime > int64(conf.GetMaxIdleTime()) { + s.Close() ticker.Stop() break } diff --git a/glc/ldb/sysmnt/sysmnt_storage.go b/glc/ldb/sysmnt/sysmnt_storage.go index 7db030b..af8c7ec 100644 --- a/glc/ldb/sysmnt/sysmnt_storage.go +++ b/glc/ldb/sysmnt/sysmnt_storage.go @@ -66,19 +66,19 @@ func GetSysmntStorage(storeName string) *SysmntStorage { // 存储器,文档 sysmntStorage = store // 缓存起来 // 逐秒判断,若闲置超时则自动关闭 - go autoCloseWhenMaxIdle(store) + go store.autoCloseWhenMaxIdle() log.Println("打开SysmntStorage:", cacheName) return store } -func autoCloseWhenMaxIdle(store *SysmntStorage) { +func (s *SysmntStorage) autoCloseWhenMaxIdle() { if conf.GetMaxIdleTime() > 0 { ticker := time.NewTicker(time.Second) for { <-ticker.C - if time.Now().Unix()-store.lastTime > int64(conf.GetMaxIdleTime()) { - store.Close() + if time.Now().Unix()-s.lastTime > int64(conf.GetMaxIdleTime()) { + s.Close() ticker.Stop() break }