Procházet zdrojové kódy

use miner patch size

zu1k před 5 roky
rodič
revize
864f8403ac
1 změnil soubory, kde provedl 16 přidání a 7 odebrání
  1. 16 7
      internal/database/proxy.go

+ 16 - 7
internal/database/proxy.go

@@ -25,17 +25,26 @@ func InitTables() {
 	}
 }
 
+const roundSize = 100
+
 func SaveProxyList(pl proxy.ProxyList) {
 	if DB == nil {
 		return
 	}
-	proxies := make([]Proxy, pl.Len())
-	for i, p := range pl {
-		proxies[i] = Proxy{
-			Base:       *p.BaseInfo(),
-			Link:       p.Link(),
-			Identifier: p.Identifier(),
+
+	size := pl.Len()
+	round := (size + roundSize - 1) / roundSize
+
+	for r := 0; r < round; r++ {
+		proxies := make([]Proxy, 0, roundSize)
+		for i, j := r*roundSize, (r+1)*roundSize-1; i < j && i < size; i++ {
+			p := pl[i]
+			proxies = append(proxies, Proxy{
+				Base:       *p.BaseInfo(),
+				Link:       p.Link(),
+				Identifier: p.Identifier(),
+			})
 		}
+		DB.Create(&proxies)
 	}
-	DB.Create(&proxies)
 }