Commit bf385ebd authored by Vladimir Barsukov's avatar Vladimir Barsukov
Browse files

save

parent 50b3df83
Pipeline #39 canceled with stages
...@@ -64,26 +64,26 @@ func (d *Pool) NewConn(mode connMode, pgConnString string) error { ...@@ -64,26 +64,26 @@ func (d *Pool) NewConn(mode connMode, pgConnString string) error {
return nil return nil
} }
} }
func (d *Pool) newConn(mode connMode, pgConnString string) (c *conn, err error) { func (d *Pool) newConn(mode connMode, pgConnString string) (q *conn, err error) {
var pool *pgxpool.Pool var pgxPool *pgxpool.Pool
if !strings.Contains(pgConnString, "default_query_exec_mode=") { if !strings.Contains(pgConnString, "default_query_exec_mode=") {
pgConnString += " default_query_exec_mode=simple_protocol" pgConnString += " default_query_exec_mode=simple_protocol"
} }
if pool, err = pgxpool.New(d.ctx, pgConnString); err != nil { if pgxPool, err = pgxpool.New(d.ctx, pgConnString); err != nil {
return &conn{Pool: pool, Alive: false, Mode: mode}, err return &conn{Pool: pgxPool, Alive: false, Mode: mode}, err
} }
c = &conn{Pool: pool, Alive: false, Mode: mode} q = &conn{Pool: pgxPool, Alive: false, Mode: mode}
if err = d.testConn(c); err != nil { if err = d.testConn(q); err != nil {
return c, err return q, err
} }
c.Alive = true q.Alive = true
return c, nil return q, nil
} }
func (d *Pool) slave() *conn { func (d *Pool) slave() *conn {
...@@ -110,21 +110,21 @@ func (d *Pool) slaveAsync() *conn { ...@@ -110,21 +110,21 @@ func (d *Pool) slaveAsync() *conn {
func (d *Pool) execWrapper(pool connMode, dst any, f func(conn *conn, dst1 any) error) error { func (d *Pool) execWrapper(pool connMode, dst any, f func(conn *conn, dst1 any) error) error {
for { for {
var c *conn var q *conn
if pool == ConnModeSync { if pool == ConnModeSync {
c = d.slave() q = d.slave()
} else { } else {
c = d.slaveAsync() q = d.slaveAsync()
} }
if err := f(c, dst); err != nil { if err := f(q, dst); err != nil {
if c.Mode == ConnModeMaster { if q.Mode == ConnModeMaster {
return err return err
} else { } else {
if strings.Contains(err.Error(), "connect") || strings.Contains(err.Error(), "EOF") { if strings.Contains(err.Error(), "connect") || strings.Contains(err.Error(), "EOF") {
d.logger.Printf("DB_EXEC_WRAPPER_ERR: %s", err.Error()) d.logger.Printf("DB_EXEC_WRAPPER_ERR: %s", err.Error())
d.setNotAliveConn(c) d.setNotAliveConn(q)
continue continue
} else { } else {
return err return err
...@@ -178,15 +178,15 @@ func (d *Pool) setNotAliveConn(conn *conn) { ...@@ -178,15 +178,15 @@ func (d *Pool) setNotAliveConn(conn *conn) {
func (d *Pool) Test() { func (d *Pool) Test() {
go func() { go func() {
for { for {
for i, p := range d.notAliveConns { for i, q := range d.notAliveConns {
if err := d.testConn(p); err == nil { if err := d.testConn(q); err == nil {
d.mu.Lock() d.mu.Lock()
p.Alive = true q.Alive = true
d.notAliveConns = remove(d.notAliveConns, i) d.notAliveConns = remove(d.notAliveConns, i)
if p.Mode == ConnModeSync { if q.Mode == ConnModeSync {
d.srvSlaves = append(d.srvSlaves, p) d.srvSlaves = append(d.srvSlaves, q)
} else if p.Mode == ConnModeAsync { } else if q.Mode == ConnModeAsync {
d.srvSlavesAsync = append(d.srvSlavesAsync, p) d.srvSlavesAsync = append(d.srvSlavesAsync, q)
} }
d.mu.Unlock() d.mu.Unlock()
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment