cron

package
v1.1.7 Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2023 License: MIT Imports: 16 Imported by: 0

Documentation

Overview

Package cron

Package cron

定时任务 仅作定时协调部分 存在设计缺陷,目前仅支持基于Time.Ticker的定时器任务 Cron任务需要基于cron实现

Index

Constants

View Source
const (
	DurationDbSaver     = 60 * 60
	DurationDbPersist   = 60 * 60 * 24
	DurationAppsync     = 60 * 60
	DurationOctopusSync = 60 * 60
	DurationAppSyncDB   = 60
	DurationAppCheck    = 60 * 60
	DurationLogRotate   = 1 * 60 * 60 * 24
	DurationAppBackup   = 1 * 60 * 60 * 24
)

启动时执行的轮询任务 用于随时刷新持久化数据 持久化数据用于恢复

View Source
const (
	ErrCronNull = "cron instance is null"
)
View Source
const (
	SpecAPPBackup = "0 0 0 1/7 * ?"
)

Variables

View Source
var CronJobMap map[cron.EntryID]*Cron

CronJobMap 保存所有的定时任务 没必要使用syncmap 采用内部加锁的方式保证数据安全性

Functions

func AddJobAPPCheck

func AddJobAPPCheck()

AddJobAPPCheck app服务定时检查

func AddJobAPPDumps

func AddJobAPPDumps()

AddJobAPPDumps 从缓存同步配置到mongo 用于同步配置参数和端口变量

func AddJobAPPSync

func AddJobAPPSync()

AddJobAPPSync app配置文件同步 同步配置文件到配置文件目录

func AddJobBackup

func AddJobBackup()

AddJobBackup 定时备份App 使用cron任务代替 此任务仅作删除old备份使用

func AddJobDBPersist

func AddJobDBPersist()

AddJobDBPersist 数据库内容持久化

func AddJobDBSaver

func AddJobDBSaver()

AddJobDBSaver 数据库刷新

func AddJobLogRotate

func AddJobLogRotate()

AddJobLogRotate 日志裁剪任务 对log目录下的所有日志绕接

func AddJobOctopusMetaSync added in v1.0.7

func AddJobOctopusMetaSync()

AddJobOctopusMetaSync 重载整个octopus目录

func AddTicker

func AddTicker(t int, taskName, des string, f func())

AddTicker 以s为维度的执行轮询任务

func InitBackgroundJobs

func InitBackgroundJobs()

func InitCronJobs added in v1.1.1

func InitCronJobs()

func InsureTickerExit

func InsureTickerExit()

InsureTickerExit 确保程序退出时关闭协程

Types

type Cron

type Cron struct {
	CronID       cron.EntryID `json:"cron_id"`
	CronName     string       `json:"cron_name"`
	CreateTime   time.Time    `json:"create_time"`
	Start        time.Time    `json:"start"`
	ExecuteTimes int          `json:"execute_times"`
	Status       string       `json:"status"`
	Finish       bool         `json:"finish"`
	IsSaved      bool         `json:"is_saved"` // 持久化数据库
}

type CronManager

type CronManager struct {
	CreateTime string
	// contains filtered or unexported fields
}

CronManager cron内部实现基于cronV3

func InitCronManager

func InitCronManager() CronManager

InitCronManager 创建一个cron实例

func (*CronManager) AddTask

func (c *CronManager) AddTask(spec, name string, f func()) (cronID cron.EntryID, err error)

AddTask 添加cron任务 添加任务仅是存储并不会立刻启动

func (*CronManager) AllTask

func (c *CronManager) AllTask() ([]cron.Entry, error)

AllTask 返回cron内部的全部任务

func (*CronManager) Check

func (c *CronManager) Check() bool

Check 检查cron的实例是否存在

func (*CronManager) DelTask

func (c *CronManager) DelTask(id cron.EntryID) error

DelTask 直接删除定时任务 由cron保证从内存中去除

func (*CronManager) StartTask

func (c *CronManager) StartTask(id cron.EntryID) error

StartTask 启动cron

func (*CronManager) StopTask

func (c *CronManager) StopTask(id cron.EntryID) error

StopTask 停止cron

Jump to

Keyboard shortcuts

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