gpt4 book ai didi

Goroutine 不运行

转载 作者:IT王子 更新时间:2023-10-29 01:23:25 27 4
gpt4 key购买 nike

我正在尝试使用 goroutine 将项目写入数据库。然而,出于某种原因,goroutine 似乎没有做任何事情。

我有以下功能:

func addEvent(w http.ResponseWriter, r *http.Request) {
body, err := ioutil.ReadAll(r.Body)
fmt.Println(string(body[:]))

if err != nil {
panic(err)
}

eventCh := make(chan []byte)
eventCh <- body
go models.WriteEventToDb(eventCh)

}

func WriteEventToDb(eventCh chan []byte) {
fmt.Println("event")
event := <-eventCh
newEvent := createNewEvent(event)
err := db.Insert(&newEvent)

if err != nil {
panic(err)
}

}

知道为什么 WriteEventToDb 没有运行吗?

最佳答案

您的函数在启动 goroutine 之前阻塞:

eventCh := make(chan []byte)
eventCh <- body

这会创建一个新 channel ,在它可以传递给任何其他例程之前,它会尝试向该 channel 发送消息。由于 channel 是无缓冲的并且没有从中读取任何内容,因此发送会无限期地阻塞。

关于Goroutine 不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47273729/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com