tableRotate

package
v2.3.1 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Close

func Close() error

Types

type CallbackParams

type CallbackParams struct {
	Tx       *gorm.DB
	SrcTable string
	DstTable string
}

type MaxTableRetention

type MaxTableRetention struct {
	Tx         *gorm.DB
	MaxNum     int
	TableName  string
	Step       string
	Tables     []string
	DateFormat string
}

MaxTableRetention 表自动分割后,保留指定数量的表

func (*MaxTableRetention) Run

func (this *MaxTableRetention) Run() error

Run 执行删除多余的表

type TableRotate

type TableRotate struct {
	Enable                  bool          `json:"enable" yaml:"enable" ini:"enable"` // 是否启用自动轮转
	Duration                time.Duration `json:"duration" yaml:"duration" ini:"duration"`
	Retry                   int           `json:"retry" yaml:"retry" ini:"retry"`                                                                // 重试次数
	WaitTime                time.Duration `json:"wait_time" yaml:"wait_time" ini:"wait_time"`                                                    // 重试等待时间
	Crontab                 string        `json:"crontab" yaml:"crontab" ini:"crontab"`                                                          // crontab 表达式 ,定时器和crontab二选一
	SplitTable              bool          `json:"split_table" yaml:"split_table" ini:"split_table"`                                              // 是否开启按天切分日志 ,开启后,自动回收数据 只会看表的保留数量,不开启,就看数据保留时长
	MaxTableRetention       int           `json:"max_table_retention" yaml:"max_table_retention" ini:"max_table_retention"`                      // 分表后,最大保留表的数量 -1 不限制
	TimeFormat              string        `json:"time_format" yaml:"time_format" ini:"time_format"`                                              // 时间格式
	SeqFields               []string      `json:"seq_fields" yaml:"seq_fields" ini:"seq_fields"`                                                 // 序列字段
	DataRetentionPeriod     int           `json:"data_retention_period" yaml:"data_retention_period" ini:"data_retention_period"`                // 数据保留时长 -1 不限制
	DataRetentionPeriodUnit string        `json:"data_retention_period_unit" yaml:"data_retention_period_unit" ini:"data_retention_period_unit"` // 数据保留时间单位 支持 second minute hour day month year
	FilterField             string        `json:"filter_field" yaml:"filter_field" ini:"filter_field"`                                           // 过滤字段 默认create_time
	// contains filtered or unexported fields
}

TableRotate db自动轮转配置

func (*TableRotate) AddTask

func (r *TableRotate) AddTask(ctx context.Context, tx *gorm.DB, tableName string)

AddTask 添加自动轮转任务

func (*TableRotate) SetRotateCallback

func (r *TableRotate) SetRotateCallback(callback func(p *CallbackParams) error)

func (*TableRotate) SetSplitCallback

func (r *TableRotate) SetSplitCallback(callback func(p *CallbackParams) error)

Jump to

Keyboard shortcuts

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