gcron增加DelayAdd方法

This commit is contained in:
John
2018-11-05 10:29:58 +08:00
parent bba2aa9a63
commit 44b804ec7d
4 changed files with 24 additions and 22 deletions

View File

@ -50,6 +50,11 @@ func Add(spec string, f func(), name ... string) error {
return defaultCron.Add(spec, f, name...)
}
// 延迟添加定时任务delay参数单位为秒
func DelayAdd(delay int, spec string, f func(), name ... string) {
defaultCron.DelayAdd(delay, spec, f, name...)
}
// 检索指定名称的定时任务
func Search(name string) *Entry {
return defaultCron.Search(name)

View File

@ -14,6 +14,7 @@ import (
"gitee.com/johng/gf/third/github.com/robfig/cron"
"reflect"
"runtime"
"time"
)
// 添加定时任务
@ -39,7 +40,7 @@ func (c *Cron) Add(spec string, f func(), name ... string) error {
}
} else {
if err := c.cron.AddFunc(spec, f); err == nil {
entry := &Entry{
entry := &Entry {
Spec : spec,
Cmd : runtime.FuncForPC(reflect.ValueOf(f).Pointer()).Name(),
Time : gtime.Now(),
@ -55,6 +56,15 @@ func (c *Cron) Add(spec string, f func(), name ... string) error {
return nil
}
// 延迟添加定时任务delay参数单位为秒
func (c *Cron) DelayAdd(delay int, spec string, f func(), name ... string) {
gtime.SetTimeout(time.Duration(delay)*time.Second, func() {
if err := c.Add(spec, f, name ...); err != nil {
panic(err)
}
})
}
// 检索指定名称的定时任务
func (c *Cron) Search(name string) *Entry {
entry, _ := c.searchEntry(name)

View File

@ -29,12 +29,12 @@ const (
// "2018/10/31 - 16:38:46"
// "2018-02-09",
// 日期连接符号支持'-'或者'/'
TIME_REAGEX_PATTERN1 = `(\d{2,4}[-/]\d{2}[-/]\d{2})[:\sT-]*(\d{0,2}:{0,1}\d{0,2}:{0,1}\d{0,2}){0,1}\.{0,1}(\d{0,9})([\sZ]*)([\+-]{0,1})([:\d]*)`
TIME_REAGEX_PATTERN1 = `(\d{2,4}[-/]\d{2}[-/]\d{2})[:\sT-]*(\d{0,2}:{0,1}\d{0,2}:{0,1}\d{0,2}){0,1}\.{0,1}(\d{0,9})([\sZ]{0,1})([\+-]{0,1})([:\d]*)`
// 01-Nov-2018 11:50:28
// 01/Nov/2018 11:50:28
// 01/Nov/2018:11:50:28
// 01/Nov/18 11:50:28
TIME_REAGEX_PATTERN2 = `(\d{1,2}[-/][A-Za-z]{3,}[-/]\d{2,4})[:\sT-]*(\d{0,2}:{0,1}\d{0,2}:{0,1}\d{0,2}){0,1}\.{0,1}(\d{0,9})([\sZ]*)([\+-]{0,1})([:\d]*)`
TIME_REAGEX_PATTERN2 = `(\d{1,2}[-/][A-Za-z]{3,}[-/]\d{2,4})[:\sT-]*(\d{0,2}:{0,1}\d{0,2}:{0,1}\d{0,2}){0,1}\.{0,1}(\d{0,9})([\sZ]{0,1})([\+-]{0,1})([:\d]*)`
)
var (