go 实现定时任务 删除 任务等等

go 实现定时任务

Installation

To download the specific tagged release, run:

go get github.com/robfig/cron/v3@v3.0.0

Import it in your program as:

import "github.com/robfig/cron/v3"

It requires Go 1.11 or later due to usage of Go Modules.

一种是标准的cron 时间

c := cron.New()

接受5个参数 spec := “*/1 * * * *”

一种是精确到秒的时间

c := cron.New(cron.WithSeconds())

接收6个参数 精确到秒 spec := “*/1 * * * * *”

代码

package main

import (
	"fmt"
	"github.com/robfig/cron/v3"
	"time"
)

func main() {
	c := cron.New(cron.WithSeconds())
	go try2(c)
	i := 0
	//c := cron.New()
	spec := "*/1 * * * * *"
	id, err := c.AddFunc(spec, func() {
		i++
		fmt.Println("cron running:", i)
		fmt.Println(time.Now())
	})
	fmt.Println("id-->", id)
	fmt.Println("-->", err)
	c.Start()
	go func() {
	time.Sleep(time.Second*10)
	c.Remove(2)
	}()
	select {}
}
func try2(c *cron.Cron) {
	i := 0
	//c := cron.New()
	spec := "*/1 * * * * *"
	id, err := c.AddFunc(spec, func() {
		i++
		fmt.Println("try2:", i)
		fmt.Println(time.Now())
	})
	fmt.Println("try2-->", id)
	fmt.Println("try2-->", err)
	c.Start()

	select {}

}

函数里面 在10秒之后 id 2 的func被终止定时任务 查看输出结果符合要求

输出

id--> 1
--> <nil>
try2--> 2
try2--> <nil>
cron running: 1
try2: 1
2020-02-17 17:15:02.1228203 +0800 CST m=+0.602629601
2020-02-17 17:15:02.1228203 +0800 CST m=+0.602629601
try2: 2
cron running: 2
2020-02-17 17:15:03.0002816 +0800 CST m=+1.480090901
2020-02-17 17:15:03.0002816 +0800 CST m=+1.480090901
try2: 3
2020-02-17 17:15:04.0046654 +0800 CST m=+2.484474701
cron running: 3
2020-02-17 17:15:04.016659 +0800 CST m=+2.496468301
cron running: 4
try2: 4
2020-02-17 17:15:05.0000577 +0800 CST m=+3.479867001
2020-02-17 17:15:05.0000577 +0800 CST m=+3.479867001
cron running: 5
try2: 5
2020-02-17 17:15:06.0024415 +0800 CST m=+4.482250801
2020-02-17 17:15:06.0014435 +0800 CST m=+4.481252801
cron running: 6
try2: 6
2020-02-17 17:15:07.0008291 +0800 CST m=+5.480638401
2020-02-17 17:15:07.0008291 +0800 CST m=+5.480638401
cron running: 7
try2: 7
2020-02-17 17:15:08.0002133 +0800 CST m=+6.480022601
2020-02-17 17:15:08.0002133 +0800 CST m=+6.480022601
try2: 8
cron running: 8
2020-02-17 17:15:09.0016015 +0800 CST m=+7.481410801
2020-02-17 17:15:09.0016015 +0800 CST m=+7.481410801
cron running: 9
try2: 9
2020-02-17 17:15:10.0019844 +0800 CST m=+8.481793701
2020-02-17 17:15:10.0019844 +0800 CST m=+8.481793701
cron running: 10
2020-02-17 17:15:11.0003719 +0800 CST m=+9.480181201
try2: 10
2020-02-17 17:15:11.0013744 +0800 CST m=+9.481183701
cron running: 11
2020-02-17 17:15:12.0017611 +0800 CST m=+10.481570401
cron running: 12
2020-02-17 17:15:13.0001464 +0800 CST m=+11.479955701
cron running: 13
2020-02-17 17:15:14.0015313 +0800 CST m=+12.481340601
cron running: 14
2020-02-17 17:15:15.0009451 +0800 CST m=+13.480754401
cron running: 15
2020-02-17 17:15:16.0003072 +0800 CST m=+14.480116501

意义

意义:用其中的id来中止掉运行的函数 实现了函数的删除和停止运行

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值