From f2275c7bdca14aa71f0baf35daa8c9796cca0494 Mon Sep 17 00:00:00 2001 From: zu1k Date: Sat, 5 Sep 2020 22:16:06 +0800 Subject: [PATCH] manual gc every crawl --- internal/app/task.go | 3 +-- internal/cron/cron.go | 4 ++++ internal/database/db.go | 5 ++++- internal/database/proxy.go | 3 +++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/internal/app/task.go b/internal/app/task.go index 19ace3b..dbdc9de 100644 --- a/internal/app/task.go +++ b/internal/app/task.go @@ -5,9 +5,8 @@ import ( "sync" "time" - "github.com/zu1k/proxypool/internal/database" - "github.com/zu1k/proxypool/internal/cache" + "github.com/zu1k/proxypool/internal/database" "github.com/zu1k/proxypool/pkg/provider" "github.com/zu1k/proxypool/pkg/proxy" ) diff --git a/internal/cron/cron.go b/internal/cron/cron.go index 9cb5050..b2b6b17 100644 --- a/internal/cron/cron.go +++ b/internal/cron/cron.go @@ -1,6 +1,8 @@ package cron import ( + "runtime" + "github.com/jasonlvhit/gocron" "github.com/zu1k/proxypool/internal/app" ) @@ -13,4 +15,6 @@ func Cron() { func crawlTask() { _ = app.InitConfigAndGetters("") app.CrawlGo() + app.Getters = nil + runtime.GC() } diff --git a/internal/database/db.go b/internal/database/db.go index 3c5ad6c..ef4014a 100644 --- a/internal/database/db.go +++ b/internal/database/db.go @@ -8,6 +8,7 @@ import ( "gorm.io/driver/postgres" "gorm.io/gorm" + "gorm.io/gorm/logger" ) var DB *gorm.DB @@ -20,7 +21,9 @@ func connect() (err error) { if url := os.Getenv("DATABASE_URL"); url != "" { dsn = url } - DB, err = gorm.Open(postgres.Open(dsn), &gorm.Config{}) + DB, err = gorm.Open(postgres.Open(dsn), &gorm.Config{ + Logger: logger.Default.LogMode(logger.Silent), + }) if err == nil { fmt.Println("DB connect success: ", DB.Name()) } diff --git a/internal/database/proxy.go b/internal/database/proxy.go index a480b62..77749ad 100644 --- a/internal/database/proxy.go +++ b/internal/database/proxy.go @@ -26,6 +26,9 @@ func InitTables() { } func SaveProxyList(pl proxy.ProxyList) { + if DB == nil { + return + } proxies := make([]Proxy, pl.Len()) for i, p := range pl { proxies[i] = Proxy{