fix: 按完成时刻分批清理并限制读连接池

This commit is contained in:
Nixevol
2026-09-30 16:22:43 +08:00
parent bd550f313f
commit 6a65ab8593
9 changed files with 350 additions and 17 deletions
+6
View File
@@ -7,6 +7,7 @@ import (
"os"
"path/filepath"
"strings"
"time"
_ "modernc.org/sqlite"
)
@@ -134,6 +135,9 @@ func OpenReader(dataDir, synchronous string) (*sql.DB, error) {
if err != nil {
return nil, fmt.Errorf("open sqlite reader: %w", err)
}
db.SetMaxOpenConns(64)
db.SetMaxIdleConns(16)
db.SetConnMaxIdleTime(5 * time.Minute)
if err := db.Ping(); err != nil {
_ = db.Close()
return nil, fmt.Errorf("ping sqlite reader: %w", err)
@@ -157,6 +161,8 @@ func buildDSN(dataDir, synchronous string, writer bool) (string, error) {
)
if writer {
dsn += "&_txlock=immediate"
} else {
dsn += "&_pragma=query_only(1)"
}
return dsn, nil
}