feat: add scheduled cleanup tasks for temporary files and old scores in works and beatleader/scoresaber services
This commit is contained in:
parent
a607e45fe3
commit
db8ced6807
32
handler/works/clean.go
Normal file
32
handler/works/clean.go
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package works
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"git.lxtend.com/qqbot/util"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
util.AddCycleTask("cleanTmpFolder", 5*time.Minute, 5*time.Minute, cleanTmpFolder)
|
||||||
|
}
|
||||||
|
|
||||||
|
func cleanTmpFolder() {
|
||||||
|
//递归获取./tmp/目录下的所有文件
|
||||||
|
files, err := os.ReadDir("./tmp/")
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
//删除创建时间超过5分钟的文件
|
||||||
|
for _, file := range files {
|
||||||
|
if file.IsDir() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
info, _ := file.Info()
|
||||||
|
if time.Since(info.ModTime()) > 5*time.Minute {
|
||||||
|
os.RemoveAll(file.Name())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -5,6 +5,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.lxtend.com/qqbot/sqlite3"
|
"git.lxtend.com/qqbot/sqlite3"
|
||||||
|
"git.lxtend.com/qqbot/util"
|
||||||
"github.com/gorilla/websocket"
|
"github.com/gorilla/websocket"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -22,6 +23,7 @@ func init() {
|
|||||||
log.Print("连接 WebSocket 失败:", err)
|
log.Print("连接 WebSocket 失败:", err)
|
||||||
time.Sleep(time.Second)
|
time.Sleep(time.Second)
|
||||||
}
|
}
|
||||||
|
util.AddCycleTask("cleanOldScores", 1*time.Hour, 1*time.Hour, cleanOldScores)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (bm *blScoresManager) connect() error {
|
func (bm *blScoresManager) connect() error {
|
||||||
@ -76,3 +78,10 @@ func (sm *blScoresManager) GetRecentScores(count int, predict string) []RecordDa
|
|||||||
|
|
||||||
return scoresCopy
|
return scoresCopy
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func cleanOldScores() {
|
||||||
|
db := sqlite3.GetDB()
|
||||||
|
ssBind := make([]string, 0)
|
||||||
|
db.Select(&ssBind, "SELECT ssid FROM ssBind")
|
||||||
|
db.Exec("DELETE FROM blRecordData WHERE generated_time < ? AND ssid NOT IN (?)", time.Now().AddDate(0, 0, -1).Unix(), ssBind)
|
||||||
|
}
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.lxtend.com/qqbot/sqlite3"
|
"git.lxtend.com/qqbot/sqlite3"
|
||||||
|
"git.lxtend.com/qqbot/util"
|
||||||
"github.com/gorilla/websocket"
|
"github.com/gorilla/websocket"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -22,6 +23,7 @@ func init() {
|
|||||||
log.Print("连接 WebSocket 失败:", err)
|
log.Print("连接 WebSocket 失败:", err)
|
||||||
time.Sleep(time.Second)
|
time.Sleep(time.Second)
|
||||||
}
|
}
|
||||||
|
util.AddCycleTask("cleanOldScores", 1*time.Hour, 1*time.Hour, cleanOldScores)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sm *scoresManager) connect() error {
|
func (sm *scoresManager) connect() error {
|
||||||
@ -76,3 +78,14 @@ func (sm *scoresManager) GetRecentScores(count int, predict string) []RecordData
|
|||||||
|
|
||||||
return scoresCopy
|
return scoresCopy
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func cleanOldScores() {
|
||||||
|
//清除>1天前且未绑定ss的记录
|
||||||
|
//1.获取所有绑定ss
|
||||||
|
//2.获取所有>1天前的记录
|
||||||
|
//3.删除未绑定ss的记录
|
||||||
|
db := sqlite3.GetDB()
|
||||||
|
ssBind := make([]string, 0)
|
||||||
|
db.Select(&ssBind, "SELECT ssid FROM ssBind")
|
||||||
|
db.Exec("DELETE FROM ssRecordData WHERE generated_time < ? AND ssid NOT IN (?)", time.Now().AddDate(0, 0, -1).Unix(), ssBind)
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user