Browse Source

Configure connection limits.

Frederic G. MARAND 8 years ago
parent
commit
f79e82d2dc
1 changed files with 16 additions and 5 deletions
  1. 16 5
      main.go

+ 16 - 5
main.go

@@ -28,8 +28,6 @@ import (
 	// "github.com/davecgh/go-spew/spew"
 )
 
-var engine *xorm.Engine
-
 func check(err error) {
 	if err != nil {
 		fmt.Println(err.Error())
@@ -37,14 +35,15 @@ func check(err error) {
 	}
 }
 
-func main() {
-	var err error
-
+func NewOrm() *xorm.Engine {
 	// NewEngine parameters are those of the SQL driver: driver and DSN.
 	engine, err := xorm.NewEngine("sqlite3", "./test.db")
 	check(err)
 	fmt.Println("ORM loaded")
+	return engine
+}
 
+func setupLogging(engine *xorm.Engine)  {
 	// Enable built-in Logging features.
 	engine.ShowSQL = true
 	engine.ShowDebug = true
@@ -55,6 +54,18 @@ func main() {
 	f, err := os.Create("sql.log")
 	check(err)
 	engine.SetLogger(xorm.NewSimpleLogger(f))
+}
+
+func main() {
+	var engine *xorm.Engine = NewOrm()
+
+	setupLogging(engine)
+
+	// Optional: limit connections.
+	const CONNECTION_LIMIT = 4
+	engine.SetMaxOpenConns(CONNECTION_LIMIT)
+	// The number of idle connections is bound by the number of open ones.
+	engine.SetMaxIdleConns(CONNECTION_LIMIT)
 
 	// Not needed: called automatically on exit.
 	engine.Close()