不器小窝 不器小窝
首页
随笔
  • GoLang
  • 前端

    • Vue
    • VuePress
  • 开发工具
  • 系统工具
读吧
  • ToDb (opens new window)
  • goKit (opens new window)
  • 友情链接
  • 免费信息
  • 时间线
  • 关于
GitHub (opens new window)

不器

知行合一
首页
随笔
  • GoLang
  • 前端

    • Vue
    • VuePress
  • 开发工具
  • 系统工具
读吧
  • ToDb (opens new window)
  • goKit (opens new window)
  • 友情链接
  • 免费信息
  • 时间线
  • 关于
GitHub (opens new window)
  • GoLang

    • GoLang 安装
    • Go经验
    • 错误集合
    • 基础库

    • 第三方库

      • colly
      • gjson
      • cron
        • cron库简介
        • 开源库地址
        • 安装
        • cron表达式
        • 基础示例
        • @every如何使用
      • sjson
    • Fyne

    • Wails

    • GoFrame

  • Dart

  • Markdown

  • 语言
  • GoLang
  • 第三方库
不器
2022-06-16
目录

cron

# cron库简介

cron是Go包,它提供了一种定时任务的管理。它具有单行检索,点表示法路径,迭代和解析json行等功能。

# 开源库地址

robfig/cron: a cron library for go (github.com) (opens new window)

# 安装

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

# cron表达式

 ┌─────────────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)
 │ │ │ │ │ │
 │ │ │ │ │ │
 * * * * * *
1
2
3
4
5
6
7
8
9
10

# 基础示例

package main

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

//主函数
func main() {
	cron2 := cron.New() //创建一个cron实例

	//执行定时任务(每5秒执行一次)
	err:= cron2.AddFunc("*/5 * * * *", print5)
	if err!=nil{
	   fmt.Println(err)
	}

	//启动/关闭
	cron2.Start()
	defer cron2.Stop()
	select {
	  //查询语句,保持程序运行,在这里等同于for{}
	}
}

//执行函数
func print5()  {
     fmt.Println("每5s执行一次cron")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

注意

cron 表达式格式可以自行百度,这里不再赘述。 需要强调的是,cron 默认支持到分钟级别,如果需要支持到秒级别,在初始化 cron 时,记得 cron.WithSeconds() 参数

cron2 := cron.New(
	cron.WithSeconds(), // 添加秒级别支持,默认支持最小粒度为分钟
) //创建一个cron实例
1
2
3

# @every如何使用

	func mian(){
		cron2 := cron.New() //创建一个cron实例

		//执行定时任务(每5秒执行一次)
		err:= cron2.AddFunc("@every 5m", print5)

		if err!=nil{
		fmt.Println(err)
		}

		//启动/关闭
		cron2.Start()
		defer cron2.Stop()
		select {
		//查询语句,保持程序运行,在这里等同于for{}
		}
	}

	//执行函数
	func print5()  {
		fmt.Println("每5s执行一次cron")
	}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#语言#GoLang#第三方库#cron#定时任务
更新时间: 2023/2/10 09:50:10
gjson
sjson

← gjson sjson→

最近更新
01
Vue-pure-Admin基础
03-16
02
WebStorm工具使用手册
03-15
03
Windows
03-12
更多文章>
Theme by Vdoing | Copyright © 2022-2023 不器 | 小窝
sitemap icon by Icons8
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式