settings

package
v1.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 25, 2022 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ApolloConfig

type ApolloConfig struct {
	AppID         string `json:"appID" yaml:"appID"`                 // 应用ID
	Cluster       string `json:"cluster" yaml:"cluster"`             // 集群
	NamespaceName string `json:"namespaceName" yaml:"namespaceName"` // 命名空间
	IP            string `json:"ip" yaml:"ip"`                       // 服务器IP
	Secret        string `json:"secret" yaml:"secret"`               // 密钥
}

type Cache

type Cache struct {
	Network          string `yaml:"network" json:"network"`                   // 网络类型, tcp or unix,默认tcp
	Addr             string `yaml:"addr" json:"addr"`                         // Redis地址 eg: localhost:6379
	User             string `yaml:"user" json:"user"`                         // 用户, redis6.0开始支持
	Pwd              string `yaml:"pwd" json:"pwd"`                           // 密码
	MinFreeConnCount int    `yaml:"minFreeConnCount" json:"minFreeConnCount"` // 最小闲置连接数, 默认是3
	MaxOpenConnCount int    `yaml:"maxOpenConnCount" json:"maxOpenConnCount"` // 最大连接数, 默认是10
	FreeMaxLifetime  int    `yaml:"freeMaxLifetime" json:"freeMaxLifetime"`   // 闲置连接存活的最大时间, -1表示无限制, 默认是10分钟, 单位: 秒
	ConnMaxLifetime  int    `yaml:"connMaxLifetime" json:"connMaxLifetime"`   // 连接存活最大时长, 默认是1小时, 单位: 秒
	Database         int    `yaml:"database" json:"database"`                 // 数据库
	ConnectTimeout   int    `yaml:"connectTimeout" json:"connectTimeout"`     // 建立连接超时时间, 默认是5秒, 单位: 秒
	ReadTimeout      int    `yaml:"readTimeout" json:"readTimeout"`           // 读取超时时间, -1表示无超时, 默认是3秒, 单位: 秒
	WriteTimeout     int    `yaml:"writeTimeout" json:"writeTimeout"`         // 写超时时间, 默认和ReadTimeout保持一致, 单位: 秒
	BusyWaitTimeOut  int    `yaml:"busyWaitTimeOut" json:"busyWaitTimeOut"`   // 当所有连接都处在繁忙状态时, 客户端等待可用连接的最大等待时长,默认为3秒
	MaxRetries       int    `yaml:"maxRetries" json:"maxRetries"`             // 最大尝试次数, -1表示不重试, 默认是3
}

Cache 缓存配置

type DB

type DB struct {
	Url              string   `yaml:"url" json:"url"`                           // 写节点Url
	Replicas         []string `yaml:"replicas" json:"replicas"`                 // 读节点Url
	TablePrefix      string   `yaml:"tablePrefix" json:"tablePrefix"`           // 表前缀
	SingularTable    bool     `yaml:"singularTable" json:"singularTable"`       // 表复数禁用
	CreateBatchSize  int      `yaml:"createBatchSize" json:"createBatchSize"`   // 批量创建数量
	EnableRawSQL     bool     `yaml:"enableRawSql" json:"enableRawSql"`         // 打印原生SQL
	MaxFreeConnCount int      `yaml:"maxFreeConnCount" json:"maxFreeConnCount"` // 最大闲置连接数量
	MaxOpenConnCount int      `yaml:"maxOpenConnCount" json:"maxOpenConnCount"` // 最大连接数量
	ConnMaxLifetime  int      `yaml:"connMaxLifetime" json:"connMaxLifetime"`   // 连接存活最大时长, 单位: 秒
	FreeMaxLifetime  int      `yaml:"freeMaxLifetime" json:"freeMaxLifetime"`   // 闲置连接存活的最大时间, 单位: 秒
}

DB 数据库配置 Mysql Url eg: root:my_pass@tcp(127.0.0.1:3306)/my_db?charset=utf8mb4&parseTime=True&loc=UTC Postgres Url eg: `host=127.0.0.1 user=root password=my_pass dbname=my_db port=5432 sslmode=disable TimeZone=UTC`

type Log

type Log struct {
	Level         string `json:"level" yaml:"level"`                 // 日志级别
	EnableConsole bool   `yaml:"enableConsole" json:"enableConsole"` // 日志是否输出到终端
	Rotated       bool   `json:"rotated" yaml:"rotated"`             // 日志是否被分割
	FileDir       string `json:"fileDir" yaml:"fileDir"`             // 日志文件所在目录
	MaxSize       int    `json:"maxSize" yaml:"maxSize"`             // 每个日志文件长度的最大大小,默认100M
	MaxAge        int    `json:"maxAge" yaml:"maxAge"`               // 日志保留的最大天数(只保留最近多少天的日志)
	MaxBackups    int    `json:"maxBackups" yaml:"maxBackups"`       // 只保留最近多少个日志文件,用于控制程序总日志的大小
	LocalTime     bool   `json:"localtime" yaml:"localtime"`         // 压缩时间是否使用本地时间,默认使用UTC时间
	Compress      bool   `json:"compress" yaml:"compress"`           // 是否压缩日志文件,压缩方法gzip
	Caller        int    `json:"caller" yaml:"caller"`               // 日志包装层数
	FileName      string `json:"fileName" yaml:"fileName"`           // 文件名
	TimeFieldName string `json:"timeFieldName" yaml:"timeFieldName"` // 时间字段名称, 默认是: time
	TimeLayout    string `json:"timeLayout" yaml:"timeLayout"`       // 时间格式, 默认是: RFC3339
}

Log 日志配置

type LogHandlerFunc

type LogHandlerFunc func(string, ...interface{})

func (LogHandlerFunc) Printf

func (d LogHandlerFunc) Printf(format string, args ...interface{})

type Mongo

type Mongo struct {
	// Uri mongo Uri example:"mongodb://localhost:27017"
	Uri string `json:"uri" yaml:"uri"`
	// Database 数据库
	Database string `json:"database" yaml:"database"`
	// MaxOpenConnCount 最大连接数量
	MaxOpenConnCount uint64 `json:"maxOpenConnCount" yaml:"maxOpenConnCount"`
	// MinOpenConnCount 最小连接数量
	MinOpenConnCount uint64 `json:"minOpenConnCount" yaml:"minOpenConnCount"`
	// FreeMaxLifetime 闲置连接最大存活时间, 单位: 秒
	FreeMaxLifetime int `yaml:"freeMaxLifetime" json:"freeMaxLifetime"`
}

type Routine

type Routine struct {
	// MaxWorkerCount 最大worker数量, 默认是10
	MaxWorkerCount int `json:"maxWorkerCount" yaml:"maxWorkerCount"`

	// FreeMaxLifetime 协程最大闲置时间, 默认是20分钟, 单位: 秒
	FreeMaxLifetime int `json:"freeMaxLifetime" yaml:"freeMaxLifetime"`

	// PanicHandler panic处理器
	PanicHandler func(interface{})

	// Logger 日志处理器
	Logger LogHandlerFunc
}

Routine 协程池配置

type Setting

type Setting struct {
	Host              string            `json:"host" yaml:"host"`                       // 地址
	Port              int               `json:"port" yaml:"port"`                       // 端口, 默认是9000
	Language          string            `json:"language" yaml:"language"`               // 校验错误返回的语言
	ShutDownTimeout   int               `json:"shutDownTimeout" yaml:"shutDownTimeout"` // 优雅重启, 接收到相关信号后, 处理请求的最长时间, 单位: 秒, 默认3s
	Application       string            `json:"application" yaml:"application"`         // 应用名
	Debug             bool              `json:"debug" yaml:"debug"`                     // debug, 默认false
	Swagger           bool              `json:"swagger" yaml:"swagger"`                 // 是否启动swagger, 默认false
	LogConfig         Log               `json:"log" yaml:"log"`                         // 日志配置
	EnableRtPool      bool              `json:"enableRtPool" yaml:"enableRtPool"`       // 启用协程池, 默认是false
	Routine           Routine           `json:"routine" yaml:"routine"`                 // 协程池配置
	Middlewares       []gin.HandlerFunc // 中间件
	server.OnHookFunc                   // server勾子函数
}

func NewSetting added in v1.2.2

func NewSetting() *Setting

func (*Setting) Arrange

func (s *Setting) Arrange()

Arrange 处理零值及无效字段为默认值

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL