mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-07 18:50:26 +08:00
自动对访问日志进行分表
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user