Files
mlsr/lsdb/Scheduler_test.go

116 lines
2.3 KiB
Go

// Package lsdb
// @Author: Wang Feng
// @Description:
// @Version: 0.1.0
// @Date: 2022/5/30 11:19
// @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
//
package lsdb
import (
"fmt"
"github.com/go-co-op/gocron"
common2 "minlib/common"
"testing"
"time"
)
func printHelloWithS(s string) {
fmt.Println("hello, ", s)
}
func printHello() {
fmt.Println("hello! ")
}
func testLuoTest() error {
timeRun := time.Now()
timeRun.Add(time.Second)
sche := gocron.NewScheduler(time.UTC)
job, err := sche.Every(3).Seconds().StartAt(timeRun).Do(printHelloWithS, "fuck")
if err != nil {
fmt.Println(err)
}
job.LimitRunsTo(3)
sche.StartAsync()
return nil
//for true {
// time.Sleep(time.Second)
//}
}
func testLuoTest2() error {
timeRun := time.Now()
timeRun.Add(time.Second)
sche := gocron.NewScheduler(time.UTC)
job, err := sche.Every(3).Seconds().StartAt(timeRun).Do(printHelloWithS, "fuck2")
if err != nil {
fmt.Println(err)
}
job.LimitRunsTo(3)
sche.StartAsync()
return nil
//for true {
// time.Sleep(time.Second)
//}
}
func TestMlsrScheduler_ScheduleTaskAfterDuration(t *testing.T) {
//_ = testLuoTest()
//_ = testLuoTest2()
//printHelloWithS("ddd")
//for true {
// time.Sleep(time.Second)
//}
// 构造
s := new(MlsrScheduler)
s.Init()
// 定时
timeNow := time.Now()
timeNow = timeNow.Add(3 * time.Second)
//调度任务
job, err := s.ScheduleTaskAfterDuration(time.Second, 3).Do(printHelloWithS, "sss")
job.LimitRunsTo(3)
s.StartAsync()
if err != nil {
fmt.Println("调度器调度任务测试失败, " + err.Error())
return
}
for true {
time.Sleep(time.Second)
}
//关闭调度器
s.Close()
}
//
// TestMlsrScheduler_ScheduleTaskAtTime
// @Description: 测试调度器在指定时间执行任务
// @param t
//
func TestMlsrScheduler_ScheduleTaskAtTime(t *testing.T) {
// 构造
s := new(MlsrScheduler)
s.Init()
// 定时
timeNow := time.Now()
timeNow = timeNow.Add(3 * time.Second)
// 调度任务
job, err := s.ScheduleTaskAtTime(timeNow, 1).Do(printHello)
job.LimitRunsTo(3)
s.StartAsync()
if err != nil {
common2.LogFatal("调度器调度任务测试失败, " + err.Error())
return
}
for true {
time.Sleep(time.Second)
}
// 关闭调度器
s.Close()
}