70 lines
1.1 KiB
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
|
|
}
|
|
}
|