fix: 按完成时刻分批清理并限制读连接池
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user