golang cron 定时任务

 

cron 用法

首先先把第三方库下载下来:

$ go get -v -u github.com/robfig/cron

我们来看一个小的demo:每隔一秒打印"hello world"

package main

import (
   "github.com/robfig/cron"
   "log"
)

func main() {
   log.Println("Starting...")

   c := cron.New() // 新建一个定时任务对象
   c.AddFunc("* * * * * *", func() {
      log.Println("hello world")

   }) // 给对象增加定时任务
   c.Start()
   select {}
}

这个小功能用time.Ticker也可以实现,我们为什么要使用cron来完成呢?别急接着往下面看就知道了。

cron表达式

我们在上面demo中使用了AddFunc,第一个参数我们传递了一个字符串是:"* * * * * *",这六个*是指什么呢?

 ┌─────────────second 范围 (0 - 60)
 │ ┌───────────── min (0 - 59)
 │ │ ┌────────────── hour (0 - 23)
 │ │ │ ┌─────────────── day of month (1 - 31)
 │ │ │ │ ┌──────────────── month (1 - 12)
 │ │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to
 │ │ │ │ │ │                  Saturday)
 │ │ │ │ │ │
 │ │ │ │ │ │
 * * * * * *

匹配符号

example

比如我们的手机卡假设都是在每个月的开始时间就更新资费:

"0 0 0 1 * *" // 表示每个月1号的00:00:00

"0 1 1 1 * *" // 表示每个月1号的01:01:00

每隔5秒执行一次:"*/5 * * * * ?"

每隔1分钟执行一次:"0 */1 * * * ?"

每天23点执行一次:"0 0 23 * * ?"

每天凌晨1点执行一次:"0 0 1 * * ?"

每月1号凌晨1点执行一次:"0 0 1 1 * ?"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值