1 回答

TA貢獻1876條經(jīng)驗 獲得超6個贊
退出程序之前需要等待所有 goroutine 完成。
func main() {
... // init DB connection etc
wg := sync.WaitGroup{}
defer db.Close()
wg.Add(1) // number of goroutines
go fetch(db, &wg)
wg.Wait() // wait for goroutines before exiting
}
func fetch(db *gotm.DB, wg *sync.WaitGroup) {
.... // some code counts pages, creates file etc
sqlLimit := 20000 // set limit
for i := 0; i < pages; i++ {
db.Table("reports_bookings"),Debug().Where(sql).Offset(i * sqlLimit).Limit(sqlLimit).Find(&myModels)
.... // code: push it to file
for {} // keeps open process
}
}
否則,你的程序?qū)⒃?goroutine 完成之前退出
- 1 回答
- 0 關注
- 111 瀏覽
添加回答
舉報