两项优化
1. 优化json类 2. 优化数据库默认连接配置
This commit is contained in:
parent
42bbd3f0f5
commit
eba7a63f4b
23
db/db.go
23
db/db.go
@ -20,17 +20,24 @@ type dsnConfig struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type DbItem struct {
|
type DbItem struct {
|
||||||
User string `yaml:"user"`
|
User string `yaml:"user"`
|
||||||
Pass string `yaml:"pass"`
|
Pass string `yaml:"pass"`
|
||||||
Host string `yaml:"host"`
|
Host string `yaml:"host"`
|
||||||
Port int `yaml:"port"`
|
Port int `yaml:"port"`
|
||||||
Name string `yaml:"name"`
|
Name string `yaml:"name"`
|
||||||
Driver string `yaml:"driver"`
|
Driver string `yaml:"driver"`
|
||||||
Prefix string `yaml:"prefix"`
|
Prefix string `yaml:"prefix"`
|
||||||
|
MaxIdleConns int `yaml:"max_idle_conns"`
|
||||||
|
MaxOpenConns int `yaml:"max_open_conns"`
|
||||||
|
ConnMaxLifetime int64 `yaml:"conn_max_lifetime"`
|
||||||
|
Timeout int `yaml:"timeout"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *DbItem) Dsn() string {
|
func (d *DbItem) Dsn() string {
|
||||||
return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&loc=Local&autocommit=true&timeout=5s", d.User, d.Pass, d.Host, d.Port, d.Name)
|
if d.Timeout <= 0 {
|
||||||
|
d.Timeout = 5
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&loc=Local&autocommit=true&timeout=%ds", d.User, d.Pass, d.Host, d.Port, d.Name, d.Timeout)
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -45,8 +45,23 @@ func LoadXorm(dsns map[string]dsnConfig) (err error) {
|
|||||||
tbMapper := core.NewPrefixMapper(core.SnakeMapper{}, cast.ToString(dsn.Item.Prefix))
|
tbMapper := core.NewPrefixMapper(core.SnakeMapper{}, cast.ToString(dsn.Item.Prefix))
|
||||||
engine.SetTableMapper(tbMapper)
|
engine.SetTableMapper(tbMapper)
|
||||||
engine.SetLogger(logger)
|
engine.SetLogger(logger)
|
||||||
engine.SetMaxIdleConns(1000)
|
|
||||||
engine.SetMaxOpenConns(1000)
|
if dsn.Item.MaxIdleConns <= 0 {
|
||||||
|
engine.SetMaxIdleConns(200)
|
||||||
|
} else {
|
||||||
|
engine.SetMaxIdleConns(dsn.Item.MaxIdleConns)
|
||||||
|
}
|
||||||
|
|
||||||
|
if dsn.Item.MaxOpenConns <= 0 {
|
||||||
|
engine.SetMaxOpenConns(200)
|
||||||
|
} else {
|
||||||
|
engine.SetMaxOpenConns(dsn.Item.MaxOpenConns)
|
||||||
|
}
|
||||||
|
|
||||||
|
if dsn.Item.ConnMaxLifetime > 0 {
|
||||||
|
engine.SetConnMaxLifetime(time.Second * time.Duration(dsn.Item.ConnMaxLifetime))
|
||||||
|
}
|
||||||
|
|
||||||
engine.TZLocation, _ = time.LoadLocation("Asia/Shanghai")
|
engine.TZLocation, _ = time.LoadLocation("Asia/Shanghai")
|
||||||
if runmode == "dev" {
|
if runmode == "dev" {
|
||||||
engine.ShowSQL(true)
|
engine.ShowSQL(true)
|
||||||
|
@ -3,7 +3,6 @@ package response
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"golib.gaore.com/GaoreGo/grlogs"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -19,9 +18,14 @@ type Json struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (j *Json) String() string {
|
func (j *Json) String() string {
|
||||||
b, err := json.Marshal(j)
|
s, _ := j.ToString()
|
||||||
grlogs.Debug(err)
|
return s
|
||||||
return bytes.NewBuffer(b).String()
|
}
|
||||||
|
|
||||||
|
func (j *Json) ToString() (str string, err error) {
|
||||||
|
var b []byte
|
||||||
|
b, err = json.Marshal(j)
|
||||||
|
return bytes.NewBuffer(b).String(), err
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewJsonByDefaultSuccess(data ...interface{}) *Json {
|
func NewJsonByDefaultSuccess(data ...interface{}) *Json {
|
||||||
|
@ -1,8 +1,48 @@
|
|||||||
package response
|
package response
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/xml"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
type Xml struct {
|
type Xml struct {
|
||||||
Code int `xml:"code"`
|
Code int `xml:"code"`
|
||||||
Data interface{} `xml:"data"`
|
Data interface{} `xml:"data"`
|
||||||
Msg string `xml:"msg"`
|
Msg string `xml:"msg"`
|
||||||
Status bool `xml:"status"`
|
Status bool `xml:"status"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Xml) String() string {
|
||||||
|
b, err := xml.MarshalIndent(x, "", " ")
|
||||||
|
if err != nil {
|
||||||
|
log.Println("xml encode", err)
|
||||||
|
}
|
||||||
|
return xml.Header + bytes.NewBuffer(b).String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewXmlByDefaultSuccess(data ...interface{}) Xml {
|
||||||
|
return NewXml(true, 0, JsonMsgDefaultOk, data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewXmlByDefaultFailed(data ...interface{}) Xml {
|
||||||
|
return NewXml(false, 1, JsonMsgDefaultFailed, data...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewXml(status bool, code int, msg string, data ...interface{}) Xml {
|
||||||
|
if len(data) > 0 {
|
||||||
|
return Xml{
|
||||||
|
Code: code,
|
||||||
|
Data: data[0],
|
||||||
|
Msg: msg,
|
||||||
|
Status: status,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return Xml{
|
||||||
|
Code: code,
|
||||||
|
Data: nil,
|
||||||
|
Msg: msg,
|
||||||
|
Status: status,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
14
response/xml_test.go
Normal file
14
response/xml_test.go
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package response
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
type XmlResponse struct {
|
||||||
|
Xml
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNewXmlByDefaultSuccess(t *testing.T) {
|
||||||
|
fmt.Println(&XmlResponse{Xml: NewXmlByDefaultSuccess()})
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user