Как убить time.Sleep (time.Until (nextExecute))?
Это старая задача очистки сессий, которая должна выполняться каждую минуту как фоновая задача.Работает нормально, но после SIGINT вся программа все еще ждет времени. Спит ... Любой знает, как убить время. Спит или альтернативный код программы?
func SessionCleanupTask() {
var quit = make(chan os.Signal)
signal.Notify(quit, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT) // kbdloss,ctrl+c,terminate,quit
for {
select {
case <- quit:
return
default:
nextExecute := time.Now().Add(time.Minute)
time.Sleep(time.Until(nextExecute))
log.Println("peek: SessionCleanupTask")
}
}
}
func init() {
go SessionCleanupTask()
}