123456789101112131415161718192021222324252627282930313233 |
- package server
- import (
- "time"
- )
- func (server *Handler) startLogAutoCleaning() {
- //create the routine for auto clean trash
- go func() {
- for {
- <-time.After(60 * time.Second) //no rush, clean every five minute
- //if there is more than 1000 log, trim it.
- if len(server.log) >= 1000 {
- server.log = server.log[1000:]
- }
- //those are old old old logs, no longer need to store it.
- for i, data := range server.log {
- if time.Now().Sub(data.Timestamp).Minutes() >= 180 {
- server.removeLog(i)
- }
- }
- }
- }()
- }
- func (server *Handler) removeLog(i int) {
- if len(server.log)-1 != i {
- server.log = append(server.log[:i], server.log[i+1:]...)
- } else {
- // if it is the last item, just remove it
- server.log = server.log[:i]
- }
- }
|