本文整理汇总了Golang中github.com/flynn/flynn/Godeps/_workspace/src/github.com/jackc/pgx.NewConnPool函数的典型用法代码示例。如果您正苦于以下问题:Golang NewConnPool函数的具体用法?Golang NewConnPool怎么用?Golang NewConnPool使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewConnPool函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestNewConnPool
func TestNewConnPool(t *testing.T) {
t.Parallel()
var numCallbacks int
afterConnect := func(c *pgx.Conn) error {
numCallbacks++
return nil
}
config := pgx.ConnPoolConfig{ConnConfig: *defaultConnConfig, MaxConnections: 2, AfterConnect: afterConnect}
pool, err := pgx.NewConnPool(config)
if err != nil {
t.Fatal("Unable to establish connection pool")
}
defer pool.Close()
// It initially connects once
stat := pool.Stat()
if stat.CurrentConnections != 1 {
t.Errorf("Expected 1 connection to be established immediately, but %v were", numCallbacks)
}
// Pool creation returns an error if any AfterConnect callback does
errAfterConnect := errors.New("Some error")
afterConnect = func(c *pgx.Conn) error {
return errAfterConnect
}
config = pgx.ConnPoolConfig{ConnConfig: *defaultConnConfig, MaxConnections: 2, AfterConnect: afterConnect}
pool, err = pgx.NewConnPool(config)
if err != errAfterConnect {
t.Errorf("Expected errAfterConnect but received unexpected: %v", err)
}
}
开发者ID:technosophos,项目名称:flynn,代码行数:34,代码来源:conn_pool_test.go
示例2: SetUpSuite
func (s *S) SetUpSuite(c *C) {
dbname := "controllertest"
if err := pgtestutils.SetupPostgres(dbname); err != nil {
c.Fatal(err)
}
pgxpool, err := pgx.NewConnPool(pgx.ConnPoolConfig{
ConnConfig: pgx.ConnConfig{
Host: os.Getenv("PGHOST"),
Database: dbname,
},
})
if err != nil {
c.Fatal(err)
}
db := postgres.New(pgxpool, nil)
if err = migrateDB(db); err != nil {
c.Fatal(err)
}
// reconnect with que statements prepared now that schema is migrated
pgxpool, err = pgx.NewConnPool(pgx.ConnPoolConfig{
ConnConfig: pgx.ConnConfig{
Host: "/var/run/postgresql",
Database: dbname,
},
AfterConnect: schema.PrepareStatements,
})
if err != nil {
c.Fatal(err)
}
db = postgres.New(pgxpool, nil)
s.flac = newFakeLogAggregatorClient()
s.cc = tu.NewFakeCluster()
s.hc = handlerConfig{
db: db,
cc: s.cc,
lc: s.flac,
rc: newFakeRouter(),
keys: []string{authKey},
}
handler := appHandler(s.hc)
s.srv = httptest.NewServer(handler)
client, err := controller.NewClient(s.srv.URL, authKey)
c.Assert(err, IsNil)
s.c = client
}
开发者ID:rikur,项目名称:flynn,代码行数:49,代码来源:controller_test.go
示例3: TestOpenFromConnPool
func TestOpenFromConnPool(t *testing.T) {
connConfig := pgx.ConnConfig{
Host: "localhost",
User: "pgx_md5",
Password: "secret",
Database: "pgx_test",
}
config := pgx.ConnPoolConfig{ConnConfig: connConfig}
pool, err := pgx.NewConnPool(config)
if err != nil {
t.Fatalf("Unable to create connection pool: %v", err)
}
defer pool.Close()
db, err := stdlib.OpenFromConnPool(pool)
if err != nil {
t.Fatalf("Unable to create connection pool: %v", err)
}
defer closeDB(t, db)
// Can get pgx.ConnPool from driver
driver := db.Driver().(*stdlib.Driver)
if driver.Pool == nil {
t.Fatal("Expected driver opened through OpenFromConnPool to have Pool, but it did not")
}
// Normal sql/database still works
var n int64
err = db.QueryRow("select 1").Scan(&n)
if err != nil {
t.Fatalf("db.QueryRow unexpectedly failed: %v", err)
}
}
开发者ID:technosophos,项目名称:flynn,代码行数:34,代码来源:sql_test.go
示例4: SetUpSuite
func (s *S) SetUpSuite(c *C) {
s.discoverd, s.cleanup = setup(c)
dbname := "routertest"
if err := pgtestutils.SetupPostgres(dbname); err != nil {
c.Fatal(err)
}
dsn := fmt.Sprintf("dbname=%s", dbname)
db, err := sql.Open("postgres", dsn)
if err != nil {
c.Fatal(err)
}
if err = migrateDB(db); err != nil {
c.Fatal(err)
}
db.Close()
pgxpool, err := pgx.NewConnPool(pgx.ConnPoolConfig{
ConnConfig: pgx.ConnConfig{
Host: os.Getenv("PGHOST"),
Database: dbname,
},
})
if err != nil {
c.Fatal(err)
}
s.pgx = pgxpool
s.pgx.Exec(sqlCreateTruncateTables)
}
开发者ID:justintung,项目名称:flynn,代码行数:29,代码来源:setup_test.go
示例5: TestPostgresFilesystem
func TestPostgresFilesystem(t *testing.T) {
dbname := "blobstoretest"
if err := pgtestutils.SetupPostgres(dbname); err != nil {
t.Fatal(err)
}
pgxpool, err := pgx.NewConnPool(pgx.ConnPoolConfig{
ConnConfig: pgx.ConnConfig{
Host: os.Getenv("PGHOST"),
Database: dbname,
},
})
if err != nil {
t.Fatal(err)
}
db := postgres.New(pgxpool, nil)
defer db.Close()
fs, err := NewPostgresFilesystem(db)
if err != nil {
t.Fatal(err)
}
testList(fs, t)
testDelete(fs, t)
testOffset(fs, t)
testFilesystem(fs, true, t)
}
开发者ID:eldarion-gondor,项目名称:cli,代码行数:26,代码来源:blobstore_test.go
示例6: main
func main() {
var err error
connPoolConfig := pgx.ConnPoolConfig{
ConnConfig: pgx.ConnConfig{
Host: "127.0.0.1",
User: "jack",
Password: "jack",
Database: "url_shortener",
Logger: log.New("module", "pgx"),
},
MaxConnections: 5,
AfterConnect: afterConnect,
}
pool, err = pgx.NewConnPool(connPoolConfig)
if err != nil {
log.Crit("Unable to create connection pool", "error", err)
os.Exit(1)
}
http.HandleFunc("/", urlHandler)
log.Info("Starting URL shortener on localhost:8080")
err = http.ListenAndServe("localhost:8080", nil)
if err != nil {
log.Crit("Unable to start web server", "error", err)
os.Exit(1)
}
}
开发者ID:devick,项目名称:flynn,代码行数:28,代码来源:main.go
示例7: createConnPool
func createConnPool(t *testing.T, maxConnections int) *pgx.ConnPool {
config := pgx.ConnPoolConfig{ConnConfig: *defaultConnConfig, MaxConnections: maxConnections}
pool, err := pgx.NewConnPool(config)
if err != nil {
t.Fatalf("Unable to create connection pool: %v", err)
}
return pool
}
开发者ID:technosophos,项目名称:flynn,代码行数:8,代码来源:conn_pool_test.go
示例8: openTestClientMaxConns
func openTestClientMaxConns(t testing.TB, maxConnections int) *Client {
connPoolConfig := pgx.ConnPoolConfig{
ConnConfig: testConnConfig,
MaxConnections: maxConnections,
AfterConnect: PrepareStatements,
}
pool, err := pgx.NewConnPool(connPoolConfig)
if err != nil {
t.Fatal(err)
}
return NewClient(pool)
}
开发者ID:devick,项目名称:flynn,代码行数:12,代码来源:que_test.go
示例9: TestNewConnPoolMaxConnectionsCannotBeLessThan2
func TestNewConnPoolMaxConnectionsCannotBeLessThan2(t *testing.T) {
t.Parallel()
config := pgx.ConnPoolConfig{ConnConfig: *defaultConnConfig, MaxConnections: 1}
pool, err := pgx.NewConnPool(config)
if err == nil {
pool.Close()
t.Fatal(`Expected NewConnPool to fail with "MaxConnections must be at least 2" error, but it succeeded`)
}
if err.Error() != "MaxConnections must be at least 2" {
t.Fatalf(`Expected NewConnPool to fail with "MaxConnections must be at least 2" error, but it failed with %v`, err)
}
}
开发者ID:technosophos,项目名称:flynn,代码行数:13,代码来源:conn_pool_test.go
示例10: TestNewConnPoolDefaultsTo5MaxConnections
func TestNewConnPoolDefaultsTo5MaxConnections(t *testing.T) {
t.Parallel()
config := pgx.ConnPoolConfig{ConnConfig: *defaultConnConfig}
pool, err := pgx.NewConnPool(config)
if err != nil {
t.Fatal("Unable to establish connection pool")
}
defer pool.Close()
if n := pool.Stat().MaxConnections; n != 5 {
t.Fatalf("Expected pool to default to 5 max connections, but it was %d", n)
}
}
开发者ID:technosophos,项目名称:flynn,代码行数:14,代码来源:conn_pool_test.go
示例11: setupTestDB
func setupTestDB(c *C, dbname string) *postgres.DB {
if err := pgtestutils.SetupPostgres(dbname); err != nil {
c.Fatal(err)
}
pgxpool, err := pgx.NewConnPool(pgx.ConnPoolConfig{
ConnConfig: pgx.ConnConfig{
Host: os.Getenv("PGHOST"),
Database: dbname,
},
})
if err != nil {
c.Fatal(err)
}
return postgres.New(pgxpool, nil)
}
开发者ID:devick,项目名称:flynn,代码行数:15,代码来源:controller_test.go
示例12: Open
func Open(conf *Conf, afterConn func(*pgx.Conn) error) (*DB, error) {
connConfig := pgx.ConnConfig{
Host: fmt.Sprintf("leader.%s.discoverd", conf.Service),
User: conf.User,
Database: conf.Database,
Password: conf.Password,
Dial: dialer.Retry.Dial,
}
connPool, err := pgx.NewConnPool(pgx.ConnPoolConfig{
ConnConfig: connConfig,
AfterConnect: afterConn,
MaxConnections: 20,
})
db := &DB{connPool, conf}
return db, err
}
开发者ID:eldarion-gondor,项目名称:cli,代码行数:16,代码来源:postgres.go
示例13: BenchmarkConnPool
func BenchmarkConnPool(b *testing.B) {
config := pgx.ConnPoolConfig{ConnConfig: *defaultConnConfig, MaxConnections: 5}
pool, err := pgx.NewConnPool(config)
if err != nil {
b.Fatalf("Unable to create connection pool: %v", err)
}
defer pool.Close()
b.ResetTimer()
for i := 0; i < b.N; i++ {
var conn *pgx.Conn
if conn, err = pool.Acquire(); err != nil {
b.Fatalf("Unable to acquire connection: %v", err)
}
pool.Release(conn)
}
}
开发者ID:rikur,项目名称:flynn,代码行数:17,代码来源:bench_test.go
示例14: main
func main() {
log := logger.New("fn", "main")
log.Info("creating controller client")
client, err := controller.NewClient("", os.Getenv("AUTH_KEY"))
if err != nil {
log.Error("error creating controller client", "err", err)
shutdown.Fatal()
}
log.Info("connecting to postgres")
db := postgres.Wait("", "")
log.Info("creating postgres connection pool")
pgxpool, err := pgx.NewConnPool(pgx.ConnPoolConfig{
ConnConfig: pgx.ConnConfig{
Host: os.Getenv("PGHOST"),
User: os.Getenv("PGUSER"),
Password: os.Getenv("PGPASSWORD"),
Database: os.Getenv("PGDATABASE"),
},
AfterConnect: que.PrepareStatements,
MaxConnections: workerCount,
})
if err != nil {
log.Error("error creating postgres connection pool", "err", err)
shutdown.Fatal()
}
shutdown.BeforeExit(func() { pgxpool.Close() })
workers := que.NewWorkerPool(
que.NewClient(pgxpool),
que.WorkMap{
"deployment": deployment.JobHandler(db, client, logger),
"app_deletion": app_deletion.JobHandler(db, client, logger),
},
workerCount,
)
workers.Interval = 5 * time.Second
log.Info("starting workers", "count", workerCount, "interval", workers.Interval)
workers.Start()
shutdown.BeforeExit(func() { workers.Shutdown() })
select {} // block and keep running
}
开发者ID:technosophos,项目名称:flynn,代码行数:46,代码来源:main.go
示例15: SetUpSuite
func (s *S) SetUpSuite(c *C) {
s.discoverd, s.cleanup = setup(c)
if err := pgtestutils.SetupPostgres(dbname); err != nil {
c.Fatal(err)
}
pgxpool, err := pgx.NewConnPool(newPgxConnPoolConfig())
if err != nil {
c.Fatal(err)
}
db := postgres.New(pgxpool, nil)
if err = migrateDB(db); err != nil {
c.Fatal(err)
}
s.pgx = db.ConnPool
s.pgx.Exec(sqlCreateTruncateTables)
}
开发者ID:devick,项目名称:flynn,代码行数:18,代码来源:setup_test.go
示例16: SetUpSuite
func (s *S) SetUpSuite(c *C) {
dbname := "controllertest"
if err := pgtestutils.SetupPostgres(dbname); err != nil {
c.Fatal(err)
}
dsn := fmt.Sprintf("dbname=%s", dbname)
db, err := sql.Open("postgres", dsn)
if err != nil {
c.Fatal(err)
}
if err = migrateDB(db); err != nil {
c.Fatal(err)
}
pg := postgres.New(db, dsn)
pgxpool, err := pgx.NewConnPool(pgx.ConnPoolConfig{
ConnConfig: pgx.ConnConfig{
Host: "/var/run/postgresql",
Database: dbname,
},
AfterConnect: que.PrepareStatements,
})
if err != nil {
c.Fatal(err)
}
s.flac = newFakeLogAggregatorClient()
s.cc = tu.NewFakeCluster()
s.hc = handlerConfig{
db: pg,
cc: s.cc,
lc: s.flac,
rc: newFakeRouter(),
pgxpool: pgxpool,
keys: []string{authKey},
}
handler := appHandler(s.hc)
s.srv = httptest.NewServer(handler)
client, err := controller.NewClient(s.srv.URL, authKey)
c.Assert(err, IsNil)
s.c = client
}
开发者ID:GrimDerp,项目名称:flynn,代码行数:43,代码来源:controller_test.go
示例17: SetUpSuite
func (s *S) SetUpSuite(c *C) {
dbname := "controllertest"
db := setupTestDB(c, dbname)
if err := migrateDB(db); err != nil {
c.Fatal(err)
}
// reconnect with que statements prepared now that schema is migrated
pgxpool, err := pgx.NewConnPool(pgx.ConnPoolConfig{
ConnConfig: pgx.ConnConfig{
Host: "/var/run/postgresql",
Database: dbname,
},
AfterConnect: schema.PrepareStatements,
})
if err != nil {
c.Fatal(err)
}
db = postgres.New(pgxpool, nil)
ca, err := certgen.Generate(certgen.Params{IsCA: true})
if err != nil {
c.Fatal(err)
}
s.caCert = []byte(ca.PEM)
s.flac = newFakeLogAggregatorClient()
s.cc = tu.NewFakeCluster()
s.hc = handlerConfig{
db: db,
cc: s.cc,
lc: s.flac,
rc: newFakeRouter(),
keys: []string{authKey},
caCert: s.caCert,
}
handler := appHandler(s.hc)
s.srv = httptest.NewServer(handler)
client, err := controller.NewClient(s.srv.URL, authKey)
c.Assert(err, IsNil)
s.c = client
}
开发者ID:eldarion-gondor,项目名称:cli,代码行数:43,代码来源:controller_test.go
示例18: NewPostgresFilesystem
func NewPostgresFilesystem(db *sql.DB) (Filesystem, error) {
m := postgres.NewMigrations()
m.Add(1,
`CREATE TABLE files (
file_id oid PRIMARY KEY DEFAULT lo_create(0),
name text UNIQUE NOT NULL,
size bigint,
type text,
digest text,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp
);`,
`CREATE FUNCTION delete_file() RETURNS TRIGGER AS $$
BEGIN
PERFORM lo_unlink(OLD.file_id);
RETURN NULL;
END;
$$ LANGUAGE plpgsql;`,
`CREATE TRIGGER delete_file
AFTER DELETE ON files
FOR EACH ROW EXECUTE PROCEDURE delete_file();`,
)
// TODO(jpg) reuse pkg/postgres connection when converted
connConf := pgx.ConnConfig{
Host: os.Getenv("PGHOST"),
User: os.Getenv("PGUSER"),
Password: os.Getenv("PGPASSWORD"),
Database: os.Getenv("PGDATABASE"),
}
pgxpool, err := pgx.NewConnPool(pgx.ConnPoolConfig{
ConnConfig: connConf,
})
if err != nil {
return nil, err
}
return &PostgresFilesystem{db: pgxpool}, m.Migrate(db)
}
开发者ID:justintung,项目名称:flynn,代码行数:36,代码来源:postgres_filesystem.go
示例19: SetUpSuite
func (s *S) SetUpSuite(c *C) {
s.discoverd, s.cleanup = setup(c)
dbname := "routertest"
if err := pgtestutils.SetupPostgres(dbname); err != nil {
c.Fatal(err)
}
pgxpool, err := pgx.NewConnPool(pgx.ConnPoolConfig{
ConnConfig: pgx.ConnConfig{
Host: os.Getenv("PGHOST"),
Database: dbname,
},
})
if err != nil {
c.Fatal(err)
}
db := postgres.New(pgxpool, nil)
if err = migrateDB(db); err != nil {
c.Fatal(err)
}
s.pgx = db.ConnPool
s.pgx.Exec(sqlCreateTruncateTables)
}
开发者ID:rikur,项目名称:flynn,代码行数:24,代码来源:setup_test.go
示例20: main
func main() {
defer shutdown.Exit()
port := os.Getenv("PORT")
if port == "" {
port = "3000"
}
addr := ":" + port
if seed := os.Getenv("NAME_SEED"); seed != "" {
s, err := hex.DecodeString(seed)
if err != nil {
log.Fatalln("error decoding NAME_SEED:", err)
}
name.SetSeed(s)
}
db := postgres.Wait("", "")
if err := migrateDB(db.DB); err != nil {
shutdown.Fatal(err)
}
pgxcfg, err := pgx.ParseURI(fmt.Sprintf("http://%s:%[email protected]%s/%s", os.Getenv("PGUSER"), os.Getenv("PGPASSWORD"), db.Addr(), os.Getenv("PGDATABASE")))
if err != nil {
log.Fatal(err)
}
pgxcfg.Dial = dialer.Retry.Dial
pgxpool, err := pgx.NewConnPool(pgx.ConnPoolConfig{
ConnConfig: pgxcfg,
AfterConnect: que.PrepareStatements,
})
if err != nil {
log.Fatal(err)
}
shutdown.BeforeExit(func() { pgxpool.Close() })
lc, err := logaggc.New("")
if err != nil {
shutdown.Fatal(err)
}
rc := routerc.New()
hb, err := discoverd.DefaultClient.AddServiceAndRegisterInstance("flynn-controller", &discoverd.Instance{
Addr: addr,
Proto: "http",
Meta: map[string]string{
"AUTH_KEY": os.Getenv("AUTH_KEY"),
},
})
if err != nil {
shutdown.Fatal(err)
}
shutdown.BeforeExit(func() {
hb.Close()
})
handler := appHandler(handlerConfig{
db: db,
cc: clusterClientWrapper{cluster.NewClient()},
lc: lc,
rc: rc,
pgxpool: pgxpool,
keys: strings.Split(os.Getenv("AUTH_KEY"), ","),
})
shutdown.Fatal(http.ListenAndServe(addr, handler))
}
开发者ID:GrimDerp,项目名称:flynn,代码行数:69,代码来源:controller.go
注:本文中的github.com/flynn/flynn/Godeps/_workspace/src/github.com/jackc/pgx.NewConnPool函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论