【golang学习之旅】Go中的cron定时任务

系列文章

【golang学习之旅】报错:a declared but not used
【golang学习之旅】Go 的基本数据类型
【golang学习之旅】深入理解字符串string数据类型
【golang学习之旅】go mod tidy
【golang学习之旅】记录一次 panic case : reflect: reflect.Value.SetInt using unaddressable value
【golang学习之旅】记录一次 error case : full error output: cc1: error: unrecognized command line option


目录

  • 系列文章
  • cron库
  • 快速使用
  • 参考


cron库

cron 是一个用Go实现的定时任务库,支持秒级定时任务,可以满足绝大多数工作场景需求。基本用法和Linux中的crontab类似

cron库分两个主要的版本,v1.2v3.0。二者在使用上有些区别:

  • v1.2版本默认支持精确到秒的cron表达式
  • v3版本默认不再是支持秒级别定时任务,而是从分钟域开始执行,要细化到秒级别时,必须携带cron.WithSeconds()参数
  • v3支持定时任务的撤销功能

用法与linux的crontab类似,不过多了个秒级别

* * * * * * //依次是 秒 分 时 日 月 周

快速使用

  • 安装
go get -u github.com/robfig/cron //1.2版本
go get github.com/robfig/cron/v3 //3.0版本

下面演示v3版本的简单用法:

  • 示例
package mainimport ("fmt""github.com/robfig/cron/v3""time"
)
func main() {// 开启秒字段支持c := cron.New(cron.WithSeconds()) //注意3.0版本不再默认支持秒级,所以这里初始化的时候要添加cron.WithSeconds()参数// 传统表达式写法: 每秒执行一次_, _ = c.AddFunc("0/1 * * * * *", func() {fmt.Println("传统表达式: ",time.Now().Format("2006-01-02 15:04:05"))})// 预定义表达式_,_ = c.AddFunc("@every 1s", func() {fmt.Println("预定义表达式: ",time.Now().Format("2006-01-02 15:04:05"))})// 启动c.Start()// 使程序无限阻塞select{}
  • 说明
    • 开启秒级级别支持情况下的写法:
      在这里插入图片描述

    • 预定义模式(用于AddFunc()):
      在这里插入图片描述


参考

http://liuqh.icu/2021/07/18/go/package/27-cron/
https://www.cnblogs.com/Xinenhui/p/16976562.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/848583.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【天气预报game】

要编写一个简单的天气预报游戏代码,我们可以使用Python语言。这个游戏可以模拟基本的天气预报功能,让玩家输入一个城市,然后返回该城市的天气情况。我们可以使用一个预定义的天气数据库,或者使用网络服务来获取实时天气数据。 下面…

Python编程学习第一篇——制作一个小游戏休闲一下

到上期结束,我们已经学习了Python语言的基本数据结构,除了数值型没有介绍,数值型用的非常广,但也是最容易理解的,将在未来的学习中带大家直接接触和学习掌握。后续我们会开始学习这门语言的一些基础语法和编程技巧&…

cs与msf权限传递

cs传递到msf 1,先启动cs ┌──(root㉿ring04h)-[~/cobalt_strike_4.7] └─# ./teamserver 192.168.196.144 123456 ​ ┌──(root㉿ring04h)-[~/cobalt_strike_4.7] └─# ./start.sh ​ 2,上传木马,上线主机 3,msf配置一个…

暑期社会实践来了,这份投稿攻略你收藏好!

一、文字投稿要求 (一)实践纪实类 1.内容充实,字数不低于1500字,标题10-30字,不允许用“精彩飞扬——大学实践队”形式,要求用一句话标题。导语新闻五要素齐全(即何人、何时、何地、何事、何因…

Qt——升级系列(Level Two):Hello Qt 程序实现、项目文件解析、Qt 编程注意事项

Hello Qt 程序实现 使用“按钮”实现 纯代码方式实现: // Widget构造函数的实现 Widget::Widget(QWidget *parent): QWidget(parent) // 使用父类构造函数初始化QWidget,传入父窗口指针, ui(new Ui::Widget) // 创建Ui::Widget类的实例,并…

人工智能时代,Martech未来的3种场景

多年来,人们一直在预测Martech Landscape的崩溃。成千上万个不同的Martech应用程序将被筛选出少数几个赢家。在过去的12年里,这些预测一直被证明是错误的,年复一年。 但也许,只是也许,人工智能时代将成为拐点&#xf…

dibbler-DHCPv6 的开源框架(C++ 实现)1

一、下载 IPv6 DHCPv6 协议的开源框架:dibbler 下载地址:https://github.com/tomaszmrugalski/dibbler.git 二、代码编写语言和文件结构 编写语言 文件 三、编译 编译 server 端: chmod x configure ./configure# 编译服务端(4核) mak…

AI推介-大语言模型LLMs论文速览(arXiv方向):2024.05.25-2024.05.31

文章目录~ 1.Direct Alignment of Language Models via Quality-Aware Self-Refinement2.Enhancing Noise Robustness of Retrieval-Augmented Language Models with Adaptive Adversarial Training3.Unveiling the Lexical Sensitivity of LLMs: Combinatorial Opt…

golang普通函数与闭包函数使用示例

1.普通函数实现 // 同类开多个参数默认写法 func add2(a int, b int) int {return a b }// 同类开多个参数简洁写法 func add3(a, b, c int) int {return a b c } 2.函数返回多个值实现 // 多个返回值写法 func add(a int, b int) (int, int) {return a * 5, b * 5 }// 多…

戴尔R720服务器(3)组RAID

今天收到7块硬盘,现在共有8块硬盘了,找了个视频学习了怎么使用阵列卡组RAID并记录。 ​​ ‍ 视频参考:【戴尔服务器添加RAID5热备盘hotspare】 ‍ 阵列卡组RAID5 开始 连接iDRAC控制台服务器开机按F2进入BIOS选择Device Settings​ ​​…

Python语言自学:深入探索四个基础、五个进阶、六个实战及七个挑战

Python语言自学:深入探索四个基础、五个进阶、六个实战及七个挑战 Python,作为一种通用编程语言,其简洁的语法、丰富的库和强大的功能,使得越来越多的人选择自学Python。但自学之路并非坦途,本文将从四个方面、五个方…

重生之 SpringBoot3 入门保姆级学习(15、内容协商返回不同数据类型)

重生之 SpringBoot3 入门保姆级学习&#xff08;15、内容协商返回不同数据类型&#xff09; 3.3.3 改变 Accept 实现内容协商3.3.4 改变 application.proerties 实现内容协商 3.3.3 改变 Accept 实现内容协商 添加支持写出 xml 内容的 Maven 依赖并刷新 Maven <!-- …

二叉树的前序遍历-力扣

二叉树的前序遍历&#xff0c;指先遍历中间节点&#xff0c;然后遍历左节点&#xff0c;然后遍历右节点&#xff0c;按照这个顺序进行递归即可。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* …

Poll机制实现以及应用实例

目录 poll机制概要说明 测试程序: 驱动程序: poll机制概要说明 Linux 系统中的 poll 机制是一种 I/O 多路复用技术,它允许程序同时监控多个文件描述符(file descriptors),以确定哪些文件描述符已经准备好进行读取、写入或出现错误。poll 机制提供了一种高效的方式来处…

linux 下修改屏幕分辨率

在使用麒麟虚拟机时&#xff0c;不知道咋回事&#xff0c;会自动改变分辨率。 使用界面设置分辨率选项修改时&#xff0c;下面的保存修改按钮显示不出来&#xff0c;无法完成设置。 所以需要使用命令行修改一下分辨率&#xff0c;修改命令如下所示&#xff1a; 1、执行xrand…

ES6真题合集(二)

ES6真题合集&#xff08;二&#xff09; 6. ES6中 Module6.1 导出&#xff08;Export&#xff09;6.2 导入&#xff08;Import&#xff09; 7. ES6中 Generator7.1 基础用法7.2 特点7.3 应用场景 8. ES6中 Decorator8.1 基础用法 9. ES6新增Set、Map两种数据结构9.1 Set9.2 Map…

用户体验至上:Vatee万腾平台的界面设计之道

在数字化时代&#xff0c;用户体验&#xff08;UX&#xff09;已经成为决定产品成功与否的关键因素之一。Vatee万腾平台深知此理&#xff0c;将用户体验置于首要位置&#xff0c;通过精心设计的界面为用户提供了便捷、舒适且高效的交易体验。 一、以用户为中心的设计理念 Vatee…

用canvas整个烟花效果

闲来无事&#xff0c;想着随便捣鼓一点东西玩玩 说说思路&#xff1a; 一 需要一个粒子类 模拟每一个烟花粒子&#xff0c;粒子有横坐标&#xff0c;纵坐标&#xff0c;半径&#xff0c;速度&#xff0c;颜色等属性&#xff0c;以及绘制的方法。 颜色这里我加了个初始化的方法…

Python读取字节数组

读取和处理bytearray中的值 # 输出&#xff1a;Combined 16-bit value: 1234 python-can发送和接收CAN报文 import can # 创建一个CAN总线对象&#xff08;这取决于你的硬件和驱动程序&#xff09; bus can.interface.Bus(channelcan0, bustypesocketcan) # 定义一个CAN…

【设计模式】JAVA Design Patterns——Proxy(代理模式)

&#x1f50d;目的 为另一个对象提供代理或占位符以控制对其的访问。 &#x1f50d;解释 真实世界例子 想象有一个塔&#xff0c;当地的巫师去那里学习他们的法术。象牙塔只能够通过代理来进入以此来保证只有首先3个巫师才能进入。这里的代理就代表的塔的功能并添加访问控制。 …