From 84be4c56532cf00a959550d0c97dc2db5d096967 Mon Sep 17 00:00:00 2001 From: Ariel Mashraki Date: Tue, 25 Jun 2019 02:14:06 -0700 Subject: [PATCH] mysql configuration for logging and conntimeout Reviewed By: alexsn Differential Revision: D15973145 fbshipit-source-id: c8baa475318dff7c80aacee4c9f90651084e20e8 --- dialect/sql/driver.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/dialect/sql/driver.go b/dialect/sql/driver.go index e027df46a..dcedfeaf9 100644 --- a/dialect/sql/driver.go +++ b/dialect/sql/driver.go @@ -11,6 +11,10 @@ import ( "fbc/ent/dialect" ) +// DefaultConnLifeTime to set the maximum amount of time a connection may be reused. +// MySQL server default values are: connect_timeout=10s and wait_timeout=28800s. +var DefaultConnLifeTime = 10 * time.Second + // Driver is a dialect.Driver implementation for SQL based databases. type Driver struct { conn @@ -23,6 +27,7 @@ func Open(driver, source string) (*Driver, error) { if err != nil { return nil, err } + db.SetConnMaxLifetime(DefaultConnLifeTime) return &Driver{conn{db}, driver}, nil } @@ -71,7 +76,7 @@ type ExecQuerier interface { QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error) } -// shared connection ExecQuerier between Gremlin and Tx. +// shared connection ExecQuerier between Driver and Tx. type conn struct { ExecQuerier }