koalaone / schedule

A simple time schedule library in Go.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Time Schedule

GoDoc Go Report Card Coverage

A simple time schedule library in Go.

Example use

func EventSecond(param string) {
	log.Printf("second event value:%v\n", param)
}

func EventSecondWithWait(param string) {
	log.Printf("second event value:%v\n", param)

	time.Sleep(12 * time.Second)
}

func EventMinute(param string) {
	log.Printf("minute event value:%v\n", param)
}

func EventHour(param string) {
	log.Printf("hour event value:%v\n", param)
}

func EventDay(param string) {
	log.Printf("day event value:%v\n", param)
}

func EventAtDatetime(param string) {
	log.Printf("AtDatetime event value:%v\n", param)
}

func TestScheduler(t *testing.T) {
	err := EverySeconds(1).Do(EventSecond, "second")
	if err != nil {
		t.Errorf("test schedule EventSecond error:%v", err.Error())
		return
	}

	err = EverySeconds(2).Do(EventSecondWithWait, "second")
	if err != nil {
		t.Errorf("test schedule EventSecondWithWait error:%v", err.Error())
		return
	}

	err = EveryMinutes(1).Do(EventMinute, "minute")
	if err != nil {
		t.Errorf("test schedule EventMinute error:%v", err.Error())
		return
	}

	err = EveryHours(1).Do(EventHour, "hour")
	if err != nil {
		t.Errorf("test schedule EventHour error:%v", err.Error())
		return
	}

	err = EveryDays(1).Do(EventDay, "day")
	if err != nil {
		t.Errorf("test schedule EventDay error:%v", err.Error())
		return
	}

	err = AtDateTime(2018, time.December, 21, 16, 59, 10).
		Do(EventAtDatetime, "at_datetime")
	if err != nil {
		t.Errorf("test schedule AtDateTime error:%v", err.Error())
		return
	}

	ctx, _ := context.WithCancel(context.Background())
	Start(ctx)

	select {}
}

About

A simple time schedule library in Go.

License:Other


Languages

Language:Go 100.0%