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 (

View File

@ -2,27 +2,14 @@ package main
import (
"fmt"
"gitee.com/johng/gf/g/os/gfile"
"gitee.com/johng/gf/third/github.com/fsnotify/fsnotify"
"os"
"gitee.com/johng/gf/g/os/gtime"
)
func main() {
if w, err := fsnotify.NewWatcher(); err != nil {
fmt.Println(err)
} else {
index := 0
if array, err := gfile.ScanDir("/home/john", "*", true); err == nil {
for _, path := range array {
index++
if err := w.Add(path); err != nil {
fmt.Println(err)
os.Exit(1)
} else {
fmt.Println(index)
}
}
}
}
s := `
[INFO] 2018-11-04 12:48:01 2018-11-04 12:48:01 ["handle eventMedlinker\\Med3Svr\\App\\Events\\Task\\InviteUserVerifyEvent::__set_state(array(\n 'deviceNum' => '25a715ff8d4835197299d7dab067841e',\n 'userIdList' => \n array (\n 0 => '62506063',\n ),\n 'dataId' => '',\n 'eventTime' => NULL,\n))"] [med3-svr-6c8c9b9f4f-fl6g9]
`
t := gtime.ParseTimeFromContent(s)
fmt.Println(t.String())
}