自动对访问日志进行分表

This commit is contained in:
刘祥超
2022-03-08 19:55:39 +08:00
parent 088636553c
commit 85a46a9827
10 changed files with 582 additions and 245 deletions

View File

@@ -9,7 +9,7 @@ func TestLogTask_loopClean(t *testing.T) {
dbs.NotifyReady()
task := NewLogTask()
err := task.loopClean(5)
err := task.loopClean()
if err != nil {
t.Fatal(err)
}

View File

@@ -103,23 +103,18 @@ func (this *ServerAccessLogCleaner) cleanDB(db *dbs.DB, endDay string) error {
return errors.New("invalid column names: " + strings.Join(columnNames, ", "))
}
columnName := columnNames[0]
var reg = regexp.MustCompile(`^(?i)(edgeHTTPAccessLogs|edgeNSAccessLogs)_(\d{8})(_\d{4})?$`)
for _, one := range ones {
tableName := one.GetString(columnName)
var tableName = one.GetString(columnName)
if len(tableName) == 0 {
continue
}
ok, err := regexp.MatchString(`^(?i)(edgeHTTPAccessLogs|edgeNSAccessLogs)_(\d{8})$`, tableName)
if err != nil {
return err
}
if !ok {
if !reg.MatchString(tableName) {
continue
}
index := strings.LastIndex(tableName, "_")
if index < 0 {
continue
}
day := tableName[index+1:]
var matches = reg.FindStringSubmatch(tableName)
var day = matches[2]
if day < endDay {
_, err = db.Exec("DROP TABLE " + tableName)
if err != nil {

View File

@@ -1,6 +1,7 @@
package tasks
package tasks_test
import (
"github.com/TeaOSLab/EdgeAPI/internal/tasks"
"github.com/iwind/TeaGo/dbs"
"testing"
)
@@ -8,7 +9,7 @@ import (
func TestServerAccessLogCleaner_Loop(t *testing.T) {
dbs.NotifyReady()
task := NewServerAccessLogCleaner()
task := tasks.NewServerAccessLogCleaner()
err := task.Loop()
if err != nil {
t.Fatal(err)