mirror of
https://gitee.com/johng/gf
synced 2026-06-25 01:05:41 +08:00
gcron增加DelayAdd方法
This commit is contained in:
@ -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)
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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 (
|
||||
|
||||
@ -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())
|
||||
}
|
||||
Reference in New Issue
Block a user