cron

package
v1.0.6 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2022 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package cron

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

Index

Constants

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

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

View Source
const (
	ErrCronNull = "cron instance is null"
)

Variables

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

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

View Source
var TickerMap = map[string]*OneTicker{}

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

func AddJobDBPersist

func AddJobDBPersist()

AddJobDBPersist 数据库内容持久化

func AddJobDBSaver

func AddJobDBSaver()

AddJobDBSaver 数据库刷新

func AddJobLogRotate

func AddJobLogRotate()

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

func AddTicker

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

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

func InitBackgroundJobs

func InitBackgroundJobs()

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

type OneTicker

type OneTicker struct {
	UUID       string `json:"uuid"`
	Name       string `json:"name"`
	Des        string `json:"des"`
	Stopped    bool   `json:"stopped"`
	CreateTime int64  `json:"create_time"`
	Duration   int    `json:"duration"`
	LastRun    int64  `json:"lastRun"`
	// contains filtered or unexported fields
}

func (*OneTicker) Start

func (tc *OneTicker) Start() (uuid string, err error)

func (*OneTicker) Stop

func (tc *OneTicker) Stop() (uuid string, err error)

Jump to

Keyboard shortcuts

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