From 023524d9fc546aeeaaeeae17203739d714c34905 Mon Sep 17 00:00:00 2001 From: rfyiamcool Date: Sat, 29 Dec 2018 11:18:37 +0800 Subject: [PATCH] add example --- example/run.go | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 example/run.go diff --git a/example/run.go b/example/run.go new file mode 100644 index 0000000..f149aa0 --- /dev/null +++ b/example/run.go @@ -0,0 +1,84 @@ +package main + +// 测试crontab spec的格式 + +import ( + "log" + "time" + + "github.com/rfyiamcool/cronlib" +) + +//启动多个任务 +func main() { + cron := cronlib.New() + + specList := map[string]string{ + "risk.scan.total.1s": "*/1 * * * * *", + "risk.scan.total.2s": "*/2 * * * * *", + "risk.scan.total.3s": "*/3 * * * * *", + "risk.scan.total.4s": "*/4 * * * * *", + "risk.scan.total.5s.to.3s": "*/5 * * * * *", + } + + for srv, spec := range specList { + tspec := spec // copy + ssrv := srv // copy + job, err := cronlib.NewJobModel( + spec, + func() { + stdout(ssrv, tspec) + }, + ) + if err != nil { + panic(err.Error()) + } + + err = cron.Register(srv, job) + if err != nil { + panic(err.Error()) + } + } + + // update test + time.AfterFunc(10*time.Second, func() { + spec := "*/3 * * * * *" + srv := "risk.scan.total.5s.to.3s" + log.Println("reset 5s to 3s", srv) + job, _ := cronlib.NewJobModel( + spec, + func() { + stdout(srv, spec) + }, + ) + cron.UpdateJobModel(srv, job) + log.Println("reset finish", srv) + + }) + + // kill test + time.AfterFunc(3*time.Second, func() { + + srv := "risk.scan.total.1s" + log.Println("stoping", srv) + cron.StopService(srv) + log.Println("stop finish", srv) + + }) + + time.AfterFunc(11*time.Second, func() { + + srvPrefix := "risk" + log.Println("stoping srv prefix", srvPrefix) + cron.StopServicePrefix(srvPrefix) + + }) + + cron.Start() + cron.Join() +} + +func stdout(srv, spec string) { + log.Println(srv, spec) +} +