Skip to content

Commit be7060a

Browse files
committed
solve database is locked error
1 parent 10ddfd1 commit be7060a

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

db.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,15 @@ func init() {
4242
Logger: logger.Discard,
4343
})
4444
checkErr(err)
45+
46+
// According to https://github.com/mattn/go-sqlite3/issues/274#issuecomment-191597862,
47+
// solve "database is locked" error using `db.SetMaxOpenConns(1)`
48+
sqlDB, err := DB.DB()
49+
checkErr(err)
50+
sqlDB.SetMaxOpenConns(1)
51+
4552
DB.AutoMigrate(&ProxyURL{})
53+
4654
}
4755

4856
func CreateProxyURL(url string) error {
@@ -93,6 +101,7 @@ func RandomProxyURL(regionFlag int, strategyFlag int) (pu string, markUnavail fu
93101
switch regionFlag {
94102
case 1:
95103
tx = DB.Raw(fmt.Sprintf("SELECT * FROM %s WHERE available = ? AND can_bypass_gfw = ? ORDER BY RANDOM() LIMIT 1;", proxyURL.TableName()), true, false).Scan(&proxyURL)
104+
96105
case 2:
97106
tx = DB.Raw(fmt.Sprintf("SELECT * FROM %s WHERE available = ? AND can_bypass_gfw = ? ORDER BY RANDOM() LIMIT 1;", proxyURL.TableName()), true, true).Scan(&proxyURL)
98107
default:

0 commit comments

Comments
 (0)