gf/g/os/gcron/gcron.go
2019-03-19 13:58:18 +08:00

121 lines
3.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright 2018 gf Author(https://github.com/gogf/gf). All Rights Reserved.
//
// This Source Code Form is subject to the terms of the MIT License.
// If a copy of the MIT was not distributed with this file,
// You can obtain one at https://github.com/gogf/gf.
// Package gcron implements a cron pattern parser and job runner.
//
// 定时任务.
package gcron
import (
"github.com/gogf/gf/g/os/gtimer"
"math"
"time"
)
const (
STATUS_READY = gtimer.STATUS_READY
STATUS_RUNNING = gtimer.STATUS_RUNNING
STATUS_STOPPED = gtimer.STATUS_STOPPED
STATUS_CLOSED = gtimer.STATUS_CLOSED
gDEFAULT_TIMES = math.MaxInt32
)
var (
// 默认的cron管理对象
defaultCron = New()
)
// 设置日志输出路径
func SetLogPath(path string) {
defaultCron.SetLogPath(path)
}
// 获取设置的日志输出路径
func GetLogPath() string {
return defaultCron.GetLogPath()
}
// 设置日志输出等级。
func SetLogLevel(level int) {
defaultCron.SetLogLevel(level)
}
// 获取日志输出等级。
func GetLogLevel() int {
return defaultCron.GetLogLevel()
}
// 添加定时任务,可以给定名字,以便于后续执行删除
func Add(pattern string, job func(), name ... string) (*Entry, error) {
return defaultCron.Add(pattern, job, name...)
}
// 添加单例运行定时任务
func AddSingleton(pattern string, job func(), name ... string) (*Entry, error) {
return defaultCron.AddSingleton(pattern, job, name...)
}
// 添加只运行一次的定时任务
func AddOnce(pattern string, job func(), name ... string) (*Entry, error) {
return defaultCron.AddOnce(pattern, job, name...)
}
// 添加运行指定次数的定时任务
func AddTimes(pattern string, times int, job func(), name ... string) (*Entry, error) {
return defaultCron.AddTimes(pattern, times, job, name...)
}
// 延迟添加定时任务
func DelayAdd(delay time.Duration, pattern string, job func(), name ... string) {
defaultCron.DelayAdd(delay, pattern, job, name...)
}
// 延迟添加单例定时任务delay参数单位为秒
func DelayAddSingleton(delay time.Duration, pattern string, job func(), name ... string) {
defaultCron.DelayAddSingleton(delay, pattern, job, name...)
}
// 延迟添加只运行一次的定时任务delay参数单位为秒
func DelayAddOnce(delay time.Duration, pattern string, job func(), name ... string) {
defaultCron.DelayAddOnce(delay, pattern, job, name...)
}
// 延迟添加运行指定次数的定时任务delay参数单位为秒
func DelayAddTimes(delay time.Duration, pattern string, times int, job func(), name ... string) {
defaultCron.DelayAddTimes(delay, pattern, times, job, name...)
}
// 检索指定名称的定时任务
func Search(name string) *Entry {
return defaultCron.Search(name)
}
// 根据指定名称删除定时任务
func Remove(name string) {
defaultCron.Remove(name)
}
// 获取所有已注册的定时任务数量
func Size() int {
return defaultCron.Size()
}
// 获取所有已注册的定时任务项
func Entries() []*Entry {
return defaultCron.Entries()
}
// 启动指定的定时任务
func Start(name string) {
defaultCron.Start(name)
}
// 停止指定的定时任务
func Stop(name string) {
defaultCron.Stop(name)
}