ddcron

package
v0.0.0-...-51d2a02 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2023 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CronChangeChannelName = "cronchange"
	DBKeyExpChannelName   = "__keyevent@%s__:expired" // 键过期通道名
	DBKeyDelChannelName   = "__keyevent@%s__:del"     // 键删除通道名
)
View Source
const (
	// RdbCronHeartKey 定时任务心跳 CronHB:节点名称:定时任务名称
	RdbCronHeartKey = CronHeartTag + ":%s:%s"
	// DefaultCronHeartbeatRate 默认定时任务心跳频率
	DefaultCronHeartbeatRate = 5
	// DefaultCronHeartbeatWait 定时任务心跳等待
	DefaultCronHeartbeatWait = 1
)
View Source
const (
	True  = "true"
	False = "false"
)
View Source
const (
	ChangeCronTag       = "CC"
	ChangeCronStatusTag = "SC"
	CronHeartTag        = "CronHB"
)
View Source
const (
	ExpConfig = "Ex" // 开启过期通知
	DelConfig = "Eg" // 开启删除通知
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CronClient

type CronClient struct {
	ID            string     `json:"id"                 gorm:"column:id;primary_key;type:varchar(36)"`
	CreateTime    string     `json:"createTime"         gorm:"column:create_time;type:varchar(20);index;"`
	UpdateTime    string     `json:"updateTime"         gorm:"column:update_time;type:varchar(20);"`
	NodeName      string     `json:"nodeName"           gorm:"column:node_name;type:varchar(50);index;"`         // 节点名称
	TmpOff        bool       `json:"tmpOff"             gorm:"column:tmp_off;comment:临时开关;index;"`               // 临时开关(是否临时定时任务)
	OneOff        bool       `json:"oneOff"             gorm:"column:one_off;comment:单例开关;index;"`               // 单例开关
	Name          string     `json:"name"               gorm:"column:name;comment:任务名称;index;type:varchar(50);"` // 任务名称
	Desc          string     `json:"desc"               gorm:"column:desc;comment:任务描述;type:text;"`              // 任务描述
	Spec          string     `json:"spec"               gorm:"column:spec;comment:Cron表达式;type:varchar(50);"`    // Cron表达式
	EntryID       int        `json:"entryId"            gorm:"column:entry_id;comment:entryId;index;"`           // entryId
	Status        bool       `json:"status"             gorm:"column:status;comment:任务状态;default:false"`         // 状态
	LastStartTime string     `json:"lastStartTime"      gorm:"column:last_start_time;type:varchar(19);"`         // 上次执行启动时间
	LastEndTime   string     `json:"lastEndTime"        gorm:"column:last_end_time;type:varchar(19);"`           // 上次执行结束时间
	Cron          *cron.Cron `json:"-"                  gorm:"-"`                                                // 定时任务管理器
	Cmd           func()     `json:"-"                  gorm:"-"`                                                // 定时任务函数
	Heartbeat     func()     `json:"-"                  gorm:"-"`                                                // 心跳
}

func (CronClient) TableName

func (CronClient) TableName() string

TableName CronClient 表名

type CronConfig

type CronConfig struct {
	DB            *gorm.DB      // 数据库连接池
	RDB           *redis.Client // Redis连接池
	RDBIndex      *int          // Redis数据库索引
	HeartbeatRate int           // 心跳频率(秒)
}

func (*CronConfig) ChangeCornStatus

func (cronConfig *CronConfig) ChangeCornStatus(id string, status bool) (err error)

ChangeCornStatus *

  • @Description: 启动/停止定时任务
  • @receiver cronConfig
  • @param id
  • @param status
  • @return err

func (*CronConfig) ChangeFuncSpec

func (cronConfig *CronConfig) ChangeFuncSpec(id string, spec string) (err error)

ChangeFuncSpec *

  • @Description: 动态修改定时任务执行频率
  • @receiver cronConfig
  • @param id
  • @param spec
  • @return err

func (*CronConfig) DeleteLoseCronData

func (cronConfig *CronConfig) DeleteLoseCronData(nodeName, name string, status *bool) (err error)

DeleteLoseCronData *

  • @Description: 移除失效的Cron数据
  • @receiver cronConfig
  • @param nodeName 节点名称
  • @param name 定时任务名称
  • @return err

func (CronConfig) NewClient

func (cronConfig CronConfig) NewClient(nodeName, name, desc, spec string, cmd func(), oneOff, tmpOff bool) (cronClient CronClient, err error)

NewClient *

  • @Description: 创建一个定时任务
  • @receiver cronConfig
  • @param name
  • @param desc
  • @param spec
  • @param cmd
  • @param oneOff
  • @return cronClient
  • @return err

func (*CronConfig) PubChangeFuncSpec

func (cronConfig *CronConfig) PubChangeFuncSpec(id string, spec string) (err error)

PubChangeFuncSpec *

  • @Description: 动态修改定时任务执行频率
  • @receiver cronConfig
  • @param id
  • @param spec
  • @return err

func (*CronConfig) PubChangeFuncStatus

func (cronConfig *CronConfig) PubChangeFuncStatus(id string, status bool) (err error)

PubChangeFuncStatus *

  • @Description: 启动/停止定时任务
  • @receiver cronConfig
  • @param id
  • @param status
  • @return err

func (*CronConfig) SubAndChangeFuncSpec

func (cronConfig *CronConfig) SubAndChangeFuncSpec()

SubAndChangeFuncSpec *

  • @Description: 订阅并修改Spec

type CronSpec

type CronSpec struct {
	ID         string `json:"id"                 gorm:"column:id;primary_key;type:varchar(36)"`
	CreateTime string `json:"createTime"         gorm:"column:create_time;type:varchar(20);index;"`
	UpdateTime string `json:"updateTime"         gorm:"column:update_time;type:varchar(20);"`
	NodeName   string `json:"nodeName"           gorm:"column:node_name;type:varchar(50);index;"`         // 节点名称
	Name       string `json:"name"               gorm:"column:name;comment:任务名称;index;type:varchar(50);"` // 任务名称
	Spec       string `json:"spec"               gorm:"column:spec;comment:Cron表达式;type:varchar(50);"`    // Cron表达式
}

CronSpec Cron执行频率

func (CronSpec) TableName

func (CronSpec) TableName() string

TableName CronSpec 表名

Jump to

Keyboard shortcuts

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