Go-cron定时任务
1、cron(计划任务)
按照约定的时间,定时的执行特定的任务(job)。
cron 表达式 表达了这种约定。 cron 表达式代表了一个时间集合,使用 6 个空格分隔的字段表示。
秒 分 时 日 月 星期
2、Linux的cron与Go的cron区别
linux 中的 cron 只能精确到分钟,而Go 实现的 cron 可以精确到秒。
3、特殊字符说明
1)星号(*) 表示 cron 表达式能匹配该字段的所有值。如在第5个字段使用星号(month),表示每个月2)斜线(/) 表示增长间隔,如第1个字段(minutes) 值是 3-59/15,表示每小时的第3分钟开始执行一次,之后每隔 15 分钟执行一次(即 3、18、33、48 这些时间点执行),这里也可以表示为:3/153)逗号(,) 用于枚举值,如第6个字段值是 MON,WED,FRI,表示 星期一、三、五 执行4)连字号(-) 表示一个范围,如第3个字段的值为 9-17 表示 9am 到 5pm 直接每个小时(包括9和17)5)问号(?) 只用于日(Day of month)和星期(Day of week),\表示不指定值,可以用于代替 *
4、cron举例说明
每隔5秒执行一次:*/5 * * * * ?每隔1分钟执行一次:0 */1 * * * ?每天23点执行一次:0 0 23 * * ?每天凌晨1点执行一次:0 0 1 * * ?每月1号凌晨1点执行一次:0 0 1 1 * ?在26分、29分、33分执行一次:0 26,29,33 * * * ?每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
5、示例代码
1 package main 2 3 import ( 4 "github.com/robfig/cron" 5 "log" 6 ) 7 8 func main() { 9 i := 0 10 c := cron.New() 11 spec := "*/5 * * * * ?" 12 c.AddFunc(spec, func() { 13 i++ 14 log.Println("cron running:", i) 15 }) 16 c.Start() 17 18 select{} 19 }
最简单crontab任务
启动后输出如下:
cron running : 1 cron running : 2 cron running : 3 cron running : 4 cron running : 5 ...
1 package main 2 3 import ( 4 "github.com/robfig/cron" 5 "log" 6 "fmt" 7 ) 8 9 type TestJob struct { 10 } 11 12 func (this TestJob)Run() { 13 fmt.Println("testJob1...") 14 } 15 16 type Test2Job struct { 17 } 18 19 func (this Test2Job)Run() { 20 fmt.Println("testJob2...") 21 } 22 23 //启动多个任务 24 func main() { 25 i := 0 26 c := cron.New() 27 28 //AddFunc 29 spec := "*/5 * * * * ?" 30 c.AddFunc(spec, func() { 31 i++ 32 log.Println("cron running:", i) 33 }) 34 35 //AddJob方法 36 c.AddJob(spec, TestJob{}) 37 c.AddJob(spec, Test2Job{}) 38 39 //启动计划任务 40 c.Start() 41 42 //关闭着计划任务, 但是不能关闭已经在执行中的任务. 43 defer c.Stop() 44 45 select{} 46 }
多个定时crontab任务
启动后输出如下:
testJob1... 2017/07/07 18:46:40 cron running: 1 testJob2... 2017/07/07 18:46:45 cron running: 2 testJob1... testJob2... 2017/07/07 18:46:50 cron running: 3 testJob1... testJob2... 2017/07/07 18:46:55 cron running: 4 testJob1... testJob2... testJob2... testJob1... 2017/07/07 18:47:00 cron running: 5 ...
转载于:https://www.cnblogs.com/Paul-watermelon/p/11135188.html
Go-cron定时任务相关推荐
- cron定时任务和No MTA installed, discarding output错误处理
陈拓 2021/09/09-2020/09/12 0. 我的系统 lsb_release -a 1. 设置cron 为了定时执行程序启用cron. 我的项目需求为每5分钟执行一次hkCapJpeg1. ...
- @Scheduled cron 定时任务表达式含义用法及* ?的区别
** @Scheduled cron 定时任务表达式含义用法及* ?的区别 ** cron格式:[秒数][分钟][小时][日期][月份][星期几][年份(可省略)] 关于[日期]与[星期几]的说明: ...
- 继续转 [转]php版本的cron定时任务执行器
由于服务器crontab只能精确到分钟,那程序的起点也是分钟. 一共包括但部分: 一.配置文件: 配置文件是用来返回要执行的定时任务文件,注意一下*的使用就行了,有两个模式,就是 Y-m-d H:i ...
- window下配置定时任务实现类似linux的cron定时任务
2019独角兽企业重金招聘Python工程师标准>>> 需求分析: 由于在window本地我已经塔建好爬中代码,不想上传到服务器直接在本地一直爬取就好,所以需要在window下新建定 ...
- ubuntu cron 定时任务
1.如何查看Ubuntu 的 crontab的执行日志: 执行sudo vim /etc/rsyslog.d/50-default.conf 将cron.* /var/log/cron.log 中cr ...
- cron定时任务详解
crond是什么? crond 和crontab是不可分割的.crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于 ...
- linux内置的cron定时任务
linux内置的cron进程能帮我们实现这些需求,cron搭配shell脚本,非常复杂的指令也没有问题. cron介绍 我们经常使用的是crontab命令是cron table的简写,它是cron的配 ...
- Go Gin 系列十一:Cron定时任务
知识点 完成定时任务的功能 本文目标 在实际的应用项目中,定时任务的使用是很常见的.你是否有过 Golang 如何做定时任务的疑问,莫非是轮询,在本文中我们将结合我们的项目讲述 Cron. 介绍 我们 ...
- Linux服务器定时清理日志文件、Linux cron定时任务
文章目录 1. 准备工作 2. 脚本实现 2.1 执行命令准备 2.2.Linux 下创建定时任务-crontab 2.2.1.crontab 常用命令 2.2.2 命令行操作 3.附甜点 cron校 ...
- Go——cron定时任务Demo
源代码:https://gitee.com/shentuzhigang/mini-project/blob/master/cron_demo 官方文档 https://pkg.go.dev/githu ...
最新文章
- nginx代理响应报文体不全解决思路
- 探秘新一代音视频技术融合通信平台全接触
- 怎样做网络推广浅谈如何更高效的提升关键词排名?你还不知道?
- 图解Java 开发教程
- 【转】jQuery.ajax向后台传递数组问题
- hive外部表改为内部表_hive内部表外部表介绍
- 获取当前程序运行的主机名称
- [转]pycharm的一些快捷键
- parseInt 的使用方式,基数表达
- 未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架 解决方案...
- python manage.py startapp app 时候报错No module named _sqlite3
- [ 逻辑锻炼] 用 JavaScript 做一个小游戏 ——2048 (详解版)
- python开发游戏脚本_Python开发游戏开服脚本
- ernie和Bert的参数理解
- H3CSE园区-Smart Link和Monitor Link
- 微信公众号小程序与服务号和订阅号有什么区别
- java和数据库时间类型
- 游戏挂机还开着电脑?那就真的out了!
- 用jk触发器构成二分频电路_JK触发器地应用设计.ppt
- 34. 在排序数组中查找元素的第一个和最后一个位置
热门文章
- 单链表的应用 就地逆置
- html5+css3第一次作业_“台风爷爷,让我作业飞走!”南京小学生写的诗都这么逆天了?...
- JS面向对象——class定义类、类的构造函数、实例方法、访问器方法、静态方法、继承、super、多态
- Vue项目开发过程中解决跨域问题(vue.config.js结合axios)
- express项目搭建 初始化详细步骤
- Nodejs 中的包、npm 、第三方模块、 package.json 以及 cnpm
- Java 给编译器看的注释--Annotation
- 【Kaggle】Intermediate Machine Learning(XGBoost + Data Leakage)
- LeetCode 1310. 子数组异或查询(前缀异或)
- Ubuntu 扩展内存或断电之后卡在 /dev/sda1 clean 和 /dev/sda1 recovering journal