以下代码抛出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或基于可用内存。
有人可以帮我吗?
谢谢
for {
data, err := m.NextMessage() // .Scan()
if err == io.EOF {
break
} else if err != nil {
log.Fatalf("Unexpected error after NextMessage(): %v", err)
}
msg, err := mail.ReadMessage(data)
if err != nil {
log.Fatal(err)
}
go saveMessage(msg)
}
...
func saveMessage(msg *mail.Message) {
// insert msg into database
}