如何解决如何在多协程中运行 postgres Tx
我必须在 groutine 中运行 tx.exec(),但它总是返回 pq: bad conenction
和 pq: unexpected Parse response 'D'
这是我的代码示例:
func (uc odooUseCase) SynchronizetourPackage(tourPackageID,partnerID string,odooPackageID int64) (err error) {
var wg sync.WaitGroup
odooUc := odooUseCase{UcContract: uc.UcContract}
odooDB,err := odooUc.BuildConnection(partnerID)
if err != nil {
logruslogger.Log(logruslogger.WarnLevel,err.Error(),functioncaller.PrintFuncName(),"odoo-build-connection")
return err
}
defer odooDB.Close()
tourPackagePriceUseCase := TourPackagePriceUseCase{UcContract: uc.UcContract,odooDB: odooDB}
tourPackageMealUseCase := TourPackageMealUseCase{UcContract: uc.UcContract,odooDB: odooDB}
errs := make(chan error)
wg.Add(1)
go func() {
wg.Wait()
close(errs)
}()
wg.Add(1)
go func() {
err := tourPackagePriceUseCase.SaveFromodoo(tourPackageID,partnerID,odooPackageID)
if err != nil {
logruslogger.Log(logruslogger.WarnLevel,"save-tour-package-price",uc.ReqID)
errs <- err
}
defer wg.Done()
}()
wg.Add(1)
go func() {
err := tourPackageMealUseCase.SaveFromodoo(tourPackageID,"save-tour-package-meal",uc.ReqID)
errs <- err
}
defer wg.Done()
}()
err = <-errs
return err
}
我需要在 go 例程中运行一个 tx.exec,因为这个函数是从另一个数据库同步的。 请有人可以帮助我吗?谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。