diff --git a/code/rest/task_service.go b/code/rest/task_service.go index 84480c4..2b87e5e 100644 --- a/code/rest/task_service.go +++ b/code/rest/task_service.go @@ -31,7 +31,8 @@ func (this *TaskService) Init() { //init the clean footprint task. func (this *TaskService) InitCleanFootprintTask() { - expression := "0 10 0 * * ?" + //use standard cron expression. 5 fields. () + expression := "10 0 * * *" cronJob := cron.New() entryId, err := cronJob.AddFunc(expression, this.footprintService.CleanOldData) core.PanicError(err) @@ -43,7 +44,7 @@ func (this *TaskService) InitCleanFootprintTask() { //init the elt task. func (this *TaskService) InitEtlTask() { - expression := "0 5 0 * * ?" + expression := "5 0 * * *" cronJob := cron.New() entryId, err := cronJob.AddFunc(expression, this.dashboardService.Etl) core.PanicError(err) @@ -55,7 +56,7 @@ func (this *TaskService) InitEtlTask() { //init the scan task. func (this *TaskService) InitScanTask() { - expression := "0 5 0 * * ?" + expression := "15 0 * * *" cronJob := cron.New() entryId, err := cronJob.AddFunc(expression, this.dashboardService.Etl) core.PanicError(err) diff --git a/code/support/tank_logger.go b/code/support/tank_logger.go index 166303d..c5c4fbd 100644 --- a/code/support/tank_logger.go +++ b/code/support/tank_logger.go @@ -25,7 +25,7 @@ func (this *TankLogger) Init() { this.openFile() - expression := "0 0 0 * * ?" + expression := "0 0 * * *" cronJob := cron.New() entryId, err := cronJob.AddFunc(expression, this.maintain) core.PanicError(err) diff --git a/code/test/cron_test.go b/code/test/cron_test.go index dc5c665..fc56aef 100644 --- a/code/test/cron_test.go +++ b/code/test/cron_test.go @@ -1,13 +1,53 @@ package test import ( + "fmt" + "github.com/eyebluecn/tank/code/core" "github.com/robfig/cron/v3" + "log" "testing" + "time" ) +func TestEveryOneSecondCron(t *testing.T) { + + i := 0 + customMethod := true + + var c *cron.Cron + var spec string + if customMethod { + //use custom cron. every 1 second. + c = cron.New(cron.WithSeconds()) + spec = "*/1 * * * * ?" + } else { + c = cron.New() + spec = "@every 1s" + } + + entryId, err := c.AddFunc(spec, func() { + i++ + log.Println("cron running:", i) + if i == 5 { + return + } + }) + fmt.Printf("entryId = %d\n", entryId) + core.PanicError(err) + + c.Start() + + time.Sleep(3500 * time.Millisecond) + if i != 3 { + t.Errorf("should be 3\n") + } + fmt.Printf("i = %d", i) + +} + func TestValidateCron(t *testing.T) { - spec := "*/1 * * * * ?" + spec := "@every 1s" _, err := cron.ParseStandard(spec) if err != nil { t.Error(err) diff --git a/code/test/main_test.go b/code/test/main_test.go index dd97827..3945af9 100644 --- a/code/test/main_test.go +++ b/code/test/main_test.go @@ -2,10 +2,7 @@ package test import ( "fmt" - "github.com/eyebluecn/tank/code/core" "github.com/eyebluecn/tank/code/tool/util" - "github.com/robfig/cron/v3" - "log" "strings" "testing" "time" @@ -23,27 +20,6 @@ func TestHello(t *testing.T) { } -func TestCron(t *testing.T) { - - i := 0 - c := cron.New() - spec := "*/1 * * * * ?" - entryId, err := c.AddFunc(spec, func() { - i++ - log.Println("cron running:", i) - if i == 3 { - panic("intent to panic.") - } - }) - fmt.Printf("entryId = %d", entryId) - core.PanicError(err) - - c.Start() - - time.Sleep(3 * time.Second) - -} - func TestDayAgo(t *testing.T) { dayAgo := time.Now()