以下代码引发slice bounds out of range错误。
func main() {
file, err := os.Open("mails.mbox")
if err != nil {
log.Fatal(err)
}
defer file.Close()
m := mbox.NewReader(file) // bufio.NewScanner(file)
for {
data, err := m.NextMessage() // .Scan()
if err == io.EOF {
break
} else if err != nil {
log.Fatalf("Unexpected error after NextMessage(): %v", err)
}
go saveMessage(data)
}
// By now we should not have any messages inside.
if _, err := m.NextMessage(); err != io.EOF {
log.Fatalf("We still have data: %v", err)
}
}
func saveMessage(data io.Reader) {
msg, err := mail.ReadMessage(data)
if err != nil {
return
}
// insert msg into database
}
我想saveMessage同时处理这个功能。
一次 100 个或基于可用内存。
牧羊人nacy
相关分类