From 30227e36bdc7ea2876e6af73a004b106de0e40e6 Mon Sep 17 00:00:00 2001 From: "Mr.Li" Date: Fri, 21 Apr 2023 17:30:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=97=A5=E5=BF=97=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- biz/export/csv_exporter.go | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/biz/export/csv_exporter.go b/biz/export/csv_exporter.go index 4ab1756..f58e0aa 100644 --- a/biz/export/csv_exporter.go +++ b/biz/export/csv_exporter.go @@ -36,33 +36,38 @@ func (ee *CsvExporter) WaitGroup(wg *sync.WaitGroup) { } func (ee *CsvExporter) Export(sql, pk string) error { + begin := time.Now() data, err := ee.mFetcher.Fetch(sql) if err != nil { return fmt.Errorf("数据获取错误:%w", err) } - ee.count = len(data.Data) - //fmt.Printf("Excel Exporter.Excel, got %v data\n", len(data)) - go func() { - begin := time.Now() - ee.file.Open() - ee.file.WriteTitle(data.Title) + log.Printf("数据获取耗时:%s \n", time.Now().Sub(begin).String()) - for _, val := range data.Data { - row := val - ee.file.Write(row) - } - ee.file.Close() - ee.wg.Done() - end := time.Now() - log.Println("csv time:%s", end.Sub(begin).String()) - }() + ee.count = len(data.Data) if ee.count > 0 { + //异步导出数据到csv文件中 + go ee.exportToCsv(data) last := data.Data[ee.count-1] ee.last = last[ee.getPkIndex(data.Title, pk)] } return nil } +func (ee *CsvExporter) exportToCsv(data *Data) { + begin := time.Now() + ee.file.Open() + ee.file.WriteTitle(data.Title) + + for _, val := range data.Data { + row := val + ee.file.Write(row) + } + ee.file.Close() + ee.wg.Done() + end := time.Now() + log.Printf("csv time:%s\n", end.Sub(begin).String()) +} + func (ee *CsvExporter) Last() (int, interface{}) { return ee.count, ee.last }