Documentation
¶
Index ¶
- Constants
- Variables
- func InitMySQLWithConn(sqlDB *sql.DB, debug bool) *gorm.DB
- func InitMySQLWithDSN(dsn string, debug bool) *gorm.DB
- type BackOff
- type CallBackFunc
- type ConstantBackOff
- type ExponentialBackOff
- type LinearBackOff
- type LockClient
- type LockCounter
- type LockItf
- type MySQLLock
- type MySQLLockItf
- type Option
Constants ¶
View Source
const ( LockStatusOpen = 0 LockStatusClosed = 1 )
Variables ¶
View Source
var (
AcquireTimeoutErr error = errors.New("get lock timeout")
)
Functions ¶
func InitMySQLWithConn ¶ added in v0.0.4
initialize *gorm.DB with an existing database connection
Types ¶
type CallBackFunc ¶ added in v0.1.5
type CallBackFunc func(err error)
type ConstantBackOff ¶ added in v0.0.8
func NewConstantBackOff ¶ added in v0.0.8
func NewConstantBackOff(d time.Duration) *ConstantBackOff
func (*ConstantBackOff) NextBackOff ¶ added in v0.0.8
func (b *ConstantBackOff) NextBackOff() time.Duration
func (*ConstantBackOff) Reset ¶ added in v0.0.8
func (b *ConstantBackOff) Reset()
type ExponentialBackOff ¶ added in v0.0.8
func NewExponentialBackOff ¶ added in v0.0.8
func NewExponentialBackOff(initInterval time.Duration, multiplier float64) *ExponentialBackOff
func (*ExponentialBackOff) NextBackOff ¶ added in v0.0.8
func (l *ExponentialBackOff) NextBackOff() time.Duration
func (*ExponentialBackOff) Reset ¶ added in v0.0.8
func (l *ExponentialBackOff) Reset()
type LinearBackOff ¶ added in v0.0.8
func NewLinearBackOff ¶ added in v0.0.8
func NewLinearBackOff(initInterval time.Duration) *LinearBackOff
func (*LinearBackOff) NextBackOff ¶ added in v0.0.8
func (l *LinearBackOff) NextBackOff() time.Duration
func (*LinearBackOff) Reset ¶ added in v0.0.8
func (l *LinearBackOff) Reset()
type LockClient ¶ added in v0.1.5
func NewLockClientWithConn ¶ added in v0.1.5
func NewLockClientWithConn(db *sql.DB, debug bool) *LockClient
func NewLockClientWithDSN ¶ added in v0.1.5
func NewLockClientWithDSN(dsn string, debug bool) *LockClient
type LockCounter ¶ added in v0.0.4
type LockCounter struct {
Name string `gorm:"column:name;size:100;index:uni_name,unique" json:"name"`
Owner string `gorm:"column:owner;size:100" json:"owner"`
Counter uint64 `gorm:"column:counter" json:"counter"`
CreatedAt time.Time `gorm:"column:created_at;type:datetime NOT NULL;default:CURRENT_TIMESTAMP" json:"createdAt"`
ModifiedAt time.Time `gorm:"column:modified_at;type:datetime NOT NULL;default:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP" json:"modifiedAt"`
ExpiredAt time.Time `gorm:"column:expired_at" json:"expiredAt"`
// other
ID int `gorm:"column:id" json:"id"`
}
func (LockCounter) TableName ¶ added in v0.0.4
func (LockCounter) TableName() string
type MySQLLockItf ¶ added in v0.0.4
type Option ¶ added in v0.1.5
type Option func(lock *MySQLLock)
func WithBackOff ¶ added in v0.1.5
func WithCallBack ¶ added in v0.1.5
func WithCallBack(f CallBackFunc) Option
If an error occurs when performing refresh, execute this callback
func WithClientID ¶ added in v0.1.5
func WithMaxLockTime ¶ added in v0.1.5
func WithRefreshBG ¶ added in v0.1.5
Click to show internal directories.
Click to hide internal directories.