Golang 入门系列(八) cron定时任务
1、cron 表达式的基本格式
2、使用的包
github.com/robfig/cron
3、示例
- 创建最简单的最简单cron任务
package main import (
"github.com/robfig/cron"
"fmt"
) func main() {
i := 0
c := cron.New()
spec := "*/5 * * * * ?"
c.AddFunc(spec, func() {
i++
fmt.Println("cron running:", i)
})
c.Start() select{}
}
启动后输出如下:
D:\Go_Path\go\src\cronjob>go run singlejob.go
cron running:
cron running:
cron running:
cron running:
cron running:
- 多个定时cron任务
package main import (
"github.com/robfig/cron"
"fmt"
) type TestJob struct {
} func (this TestJob)Run() {
fmt.Println("testJob1...")
} type Test2Job struct {
} func (this Test2Job)Run() {
fmt.Println("testJob2...")
} //启动多个任务
func main() {
i :=
c := cron.New() //AddFunc
spec := "*/5 * * * * ?"
c.AddFunc(spec, func() {
i++
fmt.Println("cron running:", i)
}) //AddJob方法
c.AddJob(spec, TestJob{})
c.AddJob(spec, Test2Job{}) //启动计划任务
c.Start() //关闭着计划任务, 但是不能关闭已经在执行中的任务.
defer c.Stop() select{}
}
启动后输出如下:
D:\Go_Path\go\src\cronjob>go run multijob.go
cron running:
testJob1...
testJob2...
testJob1...
cron running:
testJob2...
testJob1...
testJob2...
cron running:
cron running:
testJob1...
testJob2...
4、最后
以上,就将Golang中如何创建定时任务做了简单介绍,实际使用中,大家可以可结合toml yaml 配置需要定时执行的任务。
Golang 入门系列(八) cron定时任务的更多相关文章
- 微软云平台windows azure入门系列八课程
微软云平台windows azure入门系列八课程: Windows Azure入门教学系列 (一): 创建第一个WebRole程序与部署 Windows Azure入门教学系列 (二): 创建第一个 ...
- C语言高速入门系列(八)
C语言高速入门系列(八) C语言位运算与文件 本章引言: 在不知不觉中我们的C高速入门系列已经慢慢地接近尾声了,而在这一节中,我们会对 C语言中的位运算和文件进行解析,相信这两章对于一些人来说是陌生的 ...
- Golang 入门系列(十五)如何理解go的并发?
前面已经讲过很多Golang系列知识,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 接下来要说的 ...
- Golang 入门系列(十六)锁的使用场景主要涉及到哪些?读写锁为什么会比普通锁快
前面已经讲过很多Golang系列知识,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 接下来要说的 ...
- Golang 入门系列(十七)几个常见的并发模型——生产者消费者模型
前面已经讲过很多Golang系列知识,包括并发,锁等内容,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.ht ...
- Sina App Engine(SAE)入门教程(10)- Cron(定时任务)使用
参考资料 SAE Cron说明文档 Cron能干什么? cron 可以定时的触发一个脚本,在sae上最大的频率是一分钟一次.你可以用其来完成自己需要的业务逻辑,例如定期的抓取某些网页完菜信息的采集,定 ...
- Golang 入门系列(十一)Go语言实现webapi
之前,已经讲过很多Golang的东西,比如基础语法,mysql的使用,redis的使用等等,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/ca ...
- Golang 入门系列(十) mysql数据库的使用
之前,已经讲过一些Golang的基础的东西,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 今天简 ...
- Golang 入门系列(九) 如何读取YAML,JSON,INI等配置文件
实际项目中,读取相关的系统配置文件是很常见的事情.今天就来说一说,Golang 是如何读取YAML,JSON,INI等配置文件的. 1. json使用 JSON 应该比较熟悉,它是一种轻量级的数据交换 ...
随机推荐
- Spring Boot 2.x (八):日志框架的使用
我们为啥要用日志? 最初我们开始接触Java的时候,我们通常会使用System.out.println()将我们想要知道的信息打印到控制台. 但是,如果在服务器上我们去运行我们的Java程序,这个时候 ...
- #7 找出数组中第k小的数
「HW面试题」 [题目] 给定一个整数数组,如何快速地求出该数组中第k小的数.假如数组为[4,0,1,0,2,3],那么第三小的元素是1 [题目分析] 这道题涉及整数列表排序问题,直接使用sort方法 ...
- Java编程的逻辑 (51) - 剖析EnumSet
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- fork/join概述
Fork/Join是java 7 解决并发问题的解决方案. 是 java内部并行框架.核心思想分别为拆分任务和结果合并,在核心思想外,为了提高cpu多核的利用率,设计了工作窃取算法,并将工作队列设计为 ...
- nginx系列2:搭建nginx环境
我们选择编译安装nginx. 1,下载nginx 进入nginx的官网下载页面:http://nginx.org/en/download.html 找到稳定版本Stable version的下载入口开 ...
- 小tips:node起一个简单服务,打开本地项目或文件浏览
1.安装nodejs 2.在项目文件夹目录下创建一个js文件,命名server.js(自定义名称),内容如下 var http = require('http'); var fs = require( ...
- TS学习随笔(六)->断言
now,我们来看一看TS里面的断言,听起来很上档次啊,其实看完你就发出惊叹,这就是断言啊 类型断言 类型断言(Type Assertion)可以用来手动指定一个值的类型 语法 <类型>值 ...
- angular懒加载
生成module和routing.module文件 {//路径 path: 'InfectionFillInComponent', loadChildren: './component/his/inf ...
- Microsoft Dynamics CRM 9.0 OP 版本 安装 的那些 雷
天天讲安装过程好无聊了,还是搞点有营养的东西来,那么后面来说说刚出来的MSCRM OP 9.0 版本安装的那些雷: 雷1:操作系统要求Windows 2016 Server 这点还好,因为之前安装MS ...
- iOS ----------各种判断
iOS 判断数字 - (BOOL) deptNumInputShouldNumber:(NSString *)str { if (str.length == 0) { return NO; } NSS ...