本文整理汇总了Golang中github.com/jackc/pgx.ConnPoolConfig.AfterConnect方法的典型用法代码示例。如果您正苦于以下问题:Golang ConnPoolConfig.AfterConnect方法的具体用法?Golang ConnPoolConfig.AfterConnect怎么用?Golang ConnPoolConfig.AfterConnect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/jackc/pgx.ConnPoolConfig
的用法示例。
在下文中一共展示了ConnPoolConfig.AfterConnect方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: initDatabase
func initDatabase(dbHost string, dbUser string, dbPass string, dbName string, dbPort uint16, maxConnectionsInPool int) (*pgx.ConnPool, error) {
var successOrFailure string = "OK"
var config pgx.ConnPoolConfig
config.Host = dbHost
config.User = dbUser
config.Password = dbPass
config.Database = dbName
config.Port = dbPort
config.MaxConnections = maxConnectionsInPool
config.AfterConnect = func(conn *pgx.Conn) error {
worldSelectStmt = mustPrepare(conn, "worldSelectStmt", "SELECT id, randomNumber FROM World WHERE id = $1")
worldUpdateStmt = mustPrepare(conn, "worldUpdateStmt", "UPDATE World SET randomNumber = $1 WHERE id = $2")
fortuneSelectStmt = mustPrepare(conn, "fortuneSelectStmt", "SELECT id, message FROM Fortune")
// Disable synchronous commit for the current db connection
// as a performance optimization.
// See http://www.postgresql.org/docs/current/static/runtime-config-wal.html
// for details.
if _, err := conn.Exec("SET synchronous_commit TO OFF"); err != nil {
log.Fatalf("Error when disabling synchronous commit")
}
return nil
}
fmt.Println("--------------------------------------------------------------------------------------------")
connPool, err := pgx.NewConnPool(config)
if err != nil {
successOrFailure = "FAILED"
log.Println("Connecting to database ", dbName, " as user ", dbUser, " ", successOrFailure, ": \n ", err)
} else {
log.Println("Connecting to database ", dbName, " as user ", dbUser, ": ", successOrFailure)
log.Println("Fetching one record to test if db connection is valid...")
var w World
n := randomWorldNum()
if errPing := connPool.QueryRow("worldSelectStmt", n).Scan(&w.Id, &w.RandomNumber); errPing != nil {
log.Fatalf("Error scanning world row: %s", errPing)
}
log.Println("OK")
}
fmt.Println("--------------------------------------------------------------------------------------------")
return connPool, err
}
示例2: initDatabase
func initDatabase(dbHost string, dbUser string, dbPass string, dbName string, dbPort uint16, maxConnectionsInPool int) (*pgx.ConnPool, error) {
var successOrFailure string = "OK"
var config pgx.ConnPoolConfig
config.Host = dbHost
config.User = dbUser
config.Password = dbPass
config.Database = dbName
config.Port = dbPort
config.MaxConnections = maxConnectionsInPool
config.AfterConnect = func(eachConn *pgx.Conn) error {
worldSelectStmt = mustPrepare(eachConn, "worldSelectStmt", "SELECT id, randomNumber FROM World WHERE id = $1")
worldUpdateStmt = mustPrepare(eachConn, "worldUpdateStmt", "UPDATE World SET randomNumber = $1 WHERE id = $2")
fortuneSelectStmt = mustPrepare(eachConn, "fortuneSelectStmt", "SELECT id, message FROM Fortune")
return nil
}
fmt.Println("--------------------------------------------------------------------------------------------")
connPool, err := pgx.NewConnPool(config)
if err != nil {
successOrFailure = "FAILED"
log.Println("Connecting to database ", dbName, " as user ", dbUser, " ", successOrFailure, ": \n ", err)
} else {
log.Println("Connecting to database ", dbName, " as user ", dbUser, ": ", successOrFailure)
log.Println("Fetching one record to test if db connection is valid...")
var w World
n := randomWorldNum()
if errPing := connPool.QueryRow("worldSelectStmt", n).Scan(&w.Id, &w.RandomNumber); errPing != nil {
log.Fatalf("Error scanning world row: %s", errPing)
}
log.Println("OK")
}
fmt.Println("--------------------------------------------------------------------------------------------")
return connPool, err
}