From a007d4a4301d7e22d16f7cdac5743481df335356 Mon Sep 17 00:00:00 2001 From: fantasticbin Date: Sun, 2 Mar 2025 21:12:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B6=E8=A1=8C=E6=89=A7=E8=A1=8C=E6=8A=93?= =?UTF-8?q?=E5=8F=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crawler.go | 14 ++++++++++---- go.mod | 1 + go.sum | 2 ++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/crawler.go b/crawler.go index b8b3ce2..92af2ed 100644 --- a/crawler.go +++ b/crawler.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "github.com/spf13/viper" + "golang.org/x/sync/errgroup" "image" _ "image/jpeg" "io" @@ -20,6 +21,7 @@ type Crawler struct { avPath string outputPath string config *viper.Viper + g errgroup.Group } func NewCrawler(avPath, outputPath string) *Crawler { @@ -219,10 +221,14 @@ func (c *Crawler) Handle() error { } for _, cover := range coverList { - if err := c.fetchCoverImg(cover); err != nil { - return err - } + c.g.Go(func() error { + if err := c.fetchCoverImg(cover); err != nil { + return err + } + + return nil + }) } - return nil + return c.g.Wait() } diff --git a/go.mod b/go.mod index 1a92f7d..5eeaea1 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,7 @@ require ( fyne.io/fyne/v2 v2.5.4 github.com/spf13/viper v1.19.0 golang.org/x/image v0.18.0 + golang.org/x/sync v0.7.0 ) require ( diff --git a/go.sum b/go.sum index b42516b..c053bd9 100644 --- a/go.sum +++ b/go.sum @@ -455,6 +455,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=