pool
This commit is contained in:
		
							parent
							
								
									b135da6a00
								
							
						
					
					
						commit
						e30c7b7100
					
				
							
								
								
									
										1
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								go.sum
									
									
									
									
									
								
							@ -51,6 +51,7 @@ github.com/jackc/pgx/v4 v4.1.2 h1:xZwqiD9cP6zF7oJ1NO2j9txtjpA7I+MdfP3h/TAT1Q8=
 | 
				
			|||||||
github.com/jackc/pgx/v4 v4.1.2/go.mod h1:0cQ5ee0A6fEsg29vZekucSFk5OcWy8sT4qkhuPXHuIE=
 | 
					github.com/jackc/pgx/v4 v4.1.2/go.mod h1:0cQ5ee0A6fEsg29vZekucSFk5OcWy8sT4qkhuPXHuIE=
 | 
				
			||||||
github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
 | 
					github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
 | 
				
			||||||
github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
 | 
					github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
 | 
				
			||||||
 | 
					github.com/jackc/puddle v1.0.0 h1:rbjAshlgKscNa7j0jAM0uNQflis5o2XUogPMVAwtcsM=
 | 
				
			||||||
github.com/jackc/puddle v1.0.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
 | 
					github.com/jackc/puddle v1.0.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
 | 
				
			||||||
github.com/klauspost/compress v1.8.2 h1:Bx0qjetmNjdFXASH02NSAREKpiaDwkO1DRZ3dV2KCcs=
 | 
					github.com/klauspost/compress v1.8.2 h1:Bx0qjetmNjdFXASH02NSAREKpiaDwkO1DRZ3dV2KCcs=
 | 
				
			||||||
github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
 | 
					github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,7 @@ import (
 | 
				
			|||||||
	"context"
 | 
						"context"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"log"
 | 
						"log"
 | 
				
			||||||
 | 
						"net/url"
 | 
				
			||||||
	"reflect"
 | 
						"reflect"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"git.loafle.net/loafer/di-go"
 | 
						"git.loafle.net/loafer/di-go"
 | 
				
			||||||
@ -12,7 +13,7 @@ import (
 | 
				
			|||||||
	"git.loafle.net/totopia/server/pkg/loafer/web/router"
 | 
						"git.loafle.net/totopia/server/pkg/loafer/web/router"
 | 
				
			||||||
	"github.com/valyala/fasthttp"
 | 
						"github.com/valyala/fasthttp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/jackc/pgx/v4"
 | 
						"github.com/jackc/pgx/v4/pgxpool"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type MethodMapping struct {
 | 
					type MethodMapping struct {
 | 
				
			||||||
@ -21,15 +22,30 @@ type MethodMapping struct {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func Run(t reflect.Type) error {
 | 
					func Run(t reflect.Type) error {
 | 
				
			||||||
	conn, err := pgx.Connect(context.Background(), fmt.Sprintf("host=%s port=%d user=%s "+
 | 
						pgURL := &url.URL{
 | 
				
			||||||
		"password=%s dbname=%s sslmode=disable",
 | 
							Scheme: "postgres",
 | 
				
			||||||
		"localhost", 54320, "totopia", "totopia", "totopia"))
 | 
							User:   url.UserPassword("totopia", "totopia"),
 | 
				
			||||||
 | 
							Path:   "totopia",
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						q := pgURL.Query()
 | 
				
			||||||
 | 
						q.Add("sslmode", "disable")
 | 
				
			||||||
 | 
						pgURL.RawQuery = q.Encode()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						config, err := pgxpool.ParseConfig(pgURL.String())
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return fmt.Errorf("[%v]", err)
 | 
							return fmt.Errorf("[%v]", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	defer conn.Close(context.Background())
 | 
						config.ConnConfig.Host = "localhost"
 | 
				
			||||||
 | 
						config.ConnConfig.Port = 54320
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	di.RegisterResource("dbConn", conn)
 | 
						pool, err := pgxpool.ConnectConfig(context.Background(), config)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return fmt.Errorf("[%v]", err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						defer pool.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						di.RegisterResource("dbConnPool", pool)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	taServer := di.GetTypeAnnotation(t, appAnnotation.ServerAnnotationType)
 | 
						taServer := di.GetTypeAnnotation(t, appAnnotation.ServerAnnotationType)
 | 
				
			||||||
	if nil == taServer {
 | 
						if nil == taServer {
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ import (
 | 
				
			|||||||
	"git.loafle.net/loafer/annotation-go"
 | 
						"git.loafle.net/loafer/annotation-go"
 | 
				
			||||||
	"git.loafle.net/loafer/di-go"
 | 
						"git.loafle.net/loafer/di-go"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/jackc/pgx/v4"
 | 
						"github.com/jackc/pgx/v4/pgxpool"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var UserDaoType = reflect.TypeOf((*UserDao)(nil))
 | 
					var UserDaoType = reflect.TypeOf((*UserDao)(nil))
 | 
				
			||||||
@ -20,20 +20,28 @@ func init() {
 | 
				
			|||||||
type UserDao struct {
 | 
					type UserDao struct {
 | 
				
			||||||
	annotation.TypeAnnotation `annotation:"@web:Dao(\"name\": \"/userDao\")"`
 | 
						annotation.TypeAnnotation `annotation:"@web:Dao(\"name\": \"/userDao\")"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Conn *pgx.Conn `annotation:"@Resource(\"name\": \"dbConn\")"`
 | 
						Pool *pgxpool.Pool `annotation:"@Resource(\"name\": \"dbConnPool\")"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (ud *UserDao) FindAll() {
 | 
					func (ud *UserDao) FindAll() {
 | 
				
			||||||
	log.Printf("UserDao FindAll")
 | 
						log.Printf("UserDao FindAll")
 | 
				
			||||||
	row, err := ud.Conn.Query(context.Background(), "SELECT NOW()")
 | 
					
 | 
				
			||||||
 | 
						conn, err := ud.Pool.Acquire(context.Background())
 | 
				
			||||||
 | 
						if nil != err {
 | 
				
			||||||
 | 
							log.Printf("%v", err)
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						defer conn.Release()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						row, err := conn.Query(context.Background(), "select count(*) from users")
 | 
				
			||||||
	if nil != err {
 | 
						if nil != err {
 | 
				
			||||||
		log.Printf("%v", err)
 | 
							log.Printf("%v", err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if row.Next() {
 | 
						if row.Next() {
 | 
				
			||||||
		var date string
 | 
							var date int64
 | 
				
			||||||
		row.Scan(&date)
 | 
							row.Scan(&date)
 | 
				
			||||||
		log.Printf("%s", date)
 | 
							log.Printf("%d", date)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user