使用 tick 做定时

This commit is contained in:
Liang Ding 2014-10-10 14:24:47 +08:00
parent 8e888aa936
commit 7e805fd421
2 changed files with 7 additions and 12 deletions

View File

@ -60,7 +60,8 @@ var rawWide conf
// 如果是特别严重的问题(比如 $GOPATH 不存在)则退出进程,另一些不太严重的问题(比如 gocode 不存在)则放入全局通知队列. // 如果是特别严重的问题(比如 $GOPATH 不存在)则退出进程,另一些不太严重的问题(比如 gocode 不存在)则放入全局通知队列.
func FixedTimeCheckEnv() { func FixedTimeCheckEnv() {
go func() { go func() {
for { // 7 分钟进行一次检查环境
for _ = range time.Tick(time.Minute * 7) {
if "" == os.Getenv("GOPATH") { if "" == os.Getenv("GOPATH") {
glog.Fatal("Not found $GOPATH") glog.Fatal("Not found $GOPATH")
os.Exit(-1) os.Exit(-1)
@ -87,23 +88,18 @@ func FixedTimeCheckEnv() {
event.EventQueue <- event.EvtCodeIDEStubNotFound event.EventQueue <- event.EvtCodeIDEStubNotFound
glog.Warningf("Not found ide_stub [%s]", ide_stub) glog.Warningf("Not found ide_stub [%s]", ide_stub)
} }
// TODO: 7 分钟进行一次检查环境
time.Sleep(time.Second * 7)
} }
}() }()
} }
// 定时10 分钟)保存配置. // 定时1 分钟)保存配置.
// //
// 主要目的是保存用户会话内容,以备下一次用户打开 Wide 时进行会话还原. // 主要目的是保存用户会话内容,以备下一次用户打开 Wide 时进行会话还原.
func FixedTimeSave() { func FixedTimeSave() {
go func() { go func() {
for { // 1 分钟进行一次配置保存
for _ = range time.Tick(time.Minute) {
Save() Save()
// 10 分钟进行一次配置保存
time.Sleep(time.Minute * 10)
} }
}() }()
} }

View File

@ -71,7 +71,8 @@ var mutex sync.Mutex
// 无效会话:在检查时间内 30 分钟都没有使用过的会话,参考 WideSession.Updated 字段. // 无效会话:在检查时间内 30 分钟都没有使用过的会话,参考 WideSession.Updated 字段.
func FixedTimeRelease() { func FixedTimeRelease() {
go func() { go func() {
for { // 1 小时进行一次检查
for _ = range time.Tick(time.Hour) {
hour, _ := time.ParseDuration("-30m") hour, _ := time.ParseDuration("-30m")
threshold := time.Now().Add(hour) threshold := time.Now().Add(hour)
@ -82,8 +83,6 @@ func FixedTimeRelease() {
WideSessions.Remove(s.Id) WideSessions.Remove(s.Id)
} }
} }
time.Sleep(time.Hour)
} }
}() }()
} }