2
我在golang上遇到gRPC服務器流問題。 我對一行沒有問題,我只是使用了簡單的gRPC響應。 但現在我需要從我的數據庫發送一些行,我無法完成我的服務器流應用程序。Golang gRPC服務器流
我剛剛學習Golang和gRPC,這個任務現在有點難以解決這個任務。如果有人能夠幫助解決這個問題,我將非常感激,因爲網絡上沒有太多這種材料的例子。 或者,也許您現在可以在哪裏找到一個示例,瞭解如何使用gRPC + golang從數據庫流式傳輸數據。謝謝
我有這樣的代碼:
....
type record struct {
id int
lastname string
}
type server struct {
}
func (s *server) QueryData(city *pb.City, stream pb.GetDataStream_QueryDataServer) error {
db, err := sql.Open("postgres", "postgres://adresspass")
if err != nil {
log.Fatal(err)
}
defer db.Close()
rows, err := db.Query(`SELECT id, last_name FROM person WHERE city=$1`, city.City)
if err != nil {
log.Fatal(err)
}
var rs = make([]record, 0)
var rec record
for rows.Next() {
err = rows.Scan(&rec.id, &rec.lastname)
if err != nil {
return err
}
rs = append(rs, rec)
}
for _, onedata := range rs {
if err := stream.Send(onedata); err != nil {
return err
}
}
return nil
}
...
與您的問題無關,但您應該嘗試使用代碼格式工具:https://blog.golang.org/go-fmt-your-code – miltonb
@Alex我可以建議添加更多信息,例如:任何錯誤消息以及預期的結果是什麼。 – Mark