use journal mode WAL for expand db use

This commit is contained in:
Alireza Ahmadi
2026-03-08 23:18:42 +01:00
parent 6ba547331e
commit 14ea27292f
3 changed files with 23 additions and 1 deletions
+20
View File
@@ -0,0 +1,20 @@
package cronjob
import (
"github.com/alireza0/s-ui/database"
"github.com/alireza0/s-ui/logger"
)
type WALCheckpointJob struct{}
func NewWALCheckpointJob() *WALCheckpointJob {
return &WALCheckpointJob{}
}
func (s *WALCheckpointJob) Run() {
db := database.GetDB()
_, err := db.Raw("PRAGMA wal_checkpoint(FULL)").Rows()
if err != nil {
logger.Error("Error checkpointing WAL: ", err.Error())
}
}
+2
View File
@@ -29,6 +29,8 @@ func (c *CronJob) Start(loc *time.Location, trafficAge int) error {
}
// Start core if it is not running
c.cron.AddJob("@every 5s", NewCheckCoreJob())
// database WAL checkpoint
c.cron.AddJob("@every 10m", NewWALCheckpointJob())
}()
return nil
+1 -1
View File
@@ -54,7 +54,7 @@ func OpenDB(dbPath string) error {
if strings.Contains(dbPath, "?") {
sep = "&"
}
dsn := dbPath + sep + "_busy_timeout=10000"
dsn := dbPath + sep + "_busy_timeout=10000&_journal_mode=WAL"
db, err = gorm.Open(sqlite.Open(dsn), c)
if config.IsDebug() {