如何在多协程中运行 postgres Tx

问题描述

我必须在 groutine 中运行 tx.exec(),但它总是返回 pq: bad conenctionpq: 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...