mycommon/mymysql/option.go

70 lines
1.1 KiB
Go

package mymysql
import (
"gorm.io/gorm"
"gorm.io/gorm/clause"
"time"
)
type Opt func(m *MysqlDb)
func WithDisablePing(v bool) Opt {
return func(m *MysqlDb) {
m.disablePing = v
}
}
func WithGormConfig(v *gorm.Config) Opt {
return func(m *MysqlDb) {
m.gormConfig = v
}
}
func WithWriteJobNum(v int) BatchWriterOpt {
return func(c *BatchWriterConfig) {
c.jobNum = v
}
}
func WithWriteChannelBuffer(v int) BatchWriterOpt {
return func(c *BatchWriterConfig) {
c.channelBuffer = v
}
}
func WithWriteBatchSize(v int) BatchWriterOpt {
return func(c *BatchWriterConfig) {
c.batchSize = v
}
}
func WithWriteIntervalTime(v time.Duration) BatchWriterOpt {
return func(c *BatchWriterConfig) {
c.batchInterval = v
}
}
func WithAsyncWorkerNum(v int) BatchWriterOpt {
return func(c *BatchWriterConfig) {
c.asyncWorkerNum = v
}
}
func WithClause(v ...clause.Expression) BatchWriterOpt {
return func(c *BatchWriterConfig) {
c.clauseExpr = v
}
}
func WithDebug(v bool) BatchWriterOpt {
return func(c *BatchWriterConfig) {
c.debug = v
}
}
func WithNoPrepare() BatchWriterOpt {
return func(c *BatchWriterConfig) {
c.noPrepare = true
}
}