v1.5.1 增强程序稳定性

This commit is contained in:
robin
2026-03-22 17:37:40 +08:00
parent afbaaa869c
commit 17e182b413
652 changed files with 22949 additions and 34397 deletions

View File

@@ -0,0 +1,85 @@
package agents
import (
"github.com/TeaOSLab/EdgeNode/internal/remotelogs"
"os"
)
func MigrateSQLiteDBToKV(sqlitePath string) error {
_, err := os.Stat(sqlitePath)
if err != nil {
if os.IsNotExist(err) {
return nil
}
return err
}
remotelogs.Println("AGENT_MANAGER", "migrating sqlite data to kvstore ...")
src := NewSQLiteDB(sqlitePath)
err = src.Init()
if err != nil {
return err
}
defer func() {
_ = src.Close()
}()
dst := NewKVDB()
err = dst.Init()
if err != nil {
return err
}
defer func() {
_ = dst.Close()
}()
err = dst.table.DB().Truncate()
if err != nil {
return err
}
var offset int64
const size int64 = 1000
for {
agentIPs, listErr := src.ListAgentIPs(offset, size)
if listErr != nil {
return listErr
}
if len(agentIPs) == 0 {
break
}
for _, agentIP := range agentIPs {
insertErr := dst.InsertAgentIP(agentIP.Id, agentIP.IP, agentIP.AgentCode)
if insertErr != nil {
return insertErr
}
}
offset += size
}
err = dst.Flush()
if err != nil {
return err
}
err = removeSQLiteDBFiles(sqlitePath)
if err != nil {
return err
}
remotelogs.Println("AGENT_MANAGER", "migrated sqlite data to kvstore")
return nil
}
func removeSQLiteDBFiles(path string) error {
for _, filename := range []string{path, path + "-shm", path + "-wal"} {
err := os.Remove(filename)
if err != nil && !os.IsNotExist(err) {
return err
}
}
return nil
}