go语言 robfig/cron包 实现定时 调用
package main
import (
"github.com/robfig/cron"
"time"
"fmt"
"os"
log "github.com/cihub/seelog"
)
var (
ttt int
)
const (
logFilePath = "hard/log/test/test.log"
)
func init() {
logLevel := os.Getenv("LOG_LEVEL")
if logLevel == "" {
logLevel = "error"
}
logger, err := log.LoggerFromConfigAsString(`
<seelog minlevel="` + logLevel + `" maxlevel="critical">
<outputs formatid="common">
<console />
<rollingfile formatid="common" type="date" datepattern="2006-01-02" filename="` + logFilePath + `" maxrolls="7"/>
</outputs> <formats>
<format id="common" format="%Date %Time %LEVEL (%File:%Line) - %Msg%n"/>
</formats>
</seelog>
`)
if err != nil {
_ = log.Errorf("load seelog config failed! message: %s", err)
}
err = log.ReplaceLogger(logger)
if err != nil {
_ = log.Error(err)
}
}
func test(){ fmt.Printf("test=%d\n",ttt)
ttt++
}
func main() {
fmt.Println(os.Getenv("GOPATH"))
ttt=1
c := cron.New()
c.AddFunc("0/5 * * * * ?", func() { log.Info("Every hour on the half hour") })
c.AddFunc("0/5 * * * * ?", test)//5秒执行一次,12×5=60,所以一共执行12次
c.Start()
//log.Info("Every hour on the half hour")
time.Sleep(time.Minute) //一分钟后主线程退出
fmt.Println("aaa")
}
----------------------------------------
package main
import (
"github.com/robfig/cron"
// "time"
"fmt"
"os"
log "github.com/cihub/seelog"
)
var (
ttt int
)
const (
logFilePath = "D:\\hard/log/test/test.log"
)
func init() {
logLevel := os.Getenv("LOG_LEVEL")
if logLevel == "" {
logLevel = "error"
}
logger, err := log.LoggerFromConfigAsString(`
<seelog minlevel="` + logLevel + `" maxlevel="critical">
<outputs formatid="common">
<console />
<rollingfile formatid="common" type="date" datepattern="2006-01-02" filename="` + logFilePath + `" maxrolls="7"/>
</outputs> <formats>
<format id="common" format="%Date %Time %LEVEL (%File:%Line) - %Msg%n"/>
</formats>
</seelog>
`)
if err != nil {
_ = log.Errorf("load seelog config failed! message: %s", err)
}
err = log.ReplaceLogger(logger)
if err != nil {
_ = log.Error(err)
}
}
func test(){ fmt.Printf("test=%d\n",ttt)
ttt++
}
func main() {
fmt.Println(os.Getenv("GOPATH"))
ttt=1
c := cron.New()
c.AddFunc("0 33 * * * * ", func() { log.Info("Every hour on the half hour") }) //每小时的第33分钟调用
c.AddFunc("0 33 * * * * ", test)
c.Start()
//log.Info("Every hour on the half hour")
select{} }
-------------
func test(){
log.Error("test")
}
func main() {
c := cron.New()
c.AddFunc("@daily", func() { log.Error("Every hour on the half hour") })//每天调用一次
c.AddFunc("@midnight", test)//每天调用一次(和daily一样)
c.Start()
log.Info("Every hour on the half hour")
time.Sleep(time.Minute)
fmt.Println("aaa")
select{} //阻塞主线程不退出
}
(9) #: 用于确定每个月第几个星期几,只能出现在DayofMonth域。例如在4#2,表示某月的第二个星期三。
go语言 robfig/cron包 实现定时 调用的更多相关文章
- go语言的cron包的简单使用
3.cron举例说明 每隔5秒执行一次:*/5 * * * * ? 每隔1分钟执行一次:0 */1 * * * ? 每天23点执行一次:0 0 ...
- Golang robfig/cron 实现解析
robfig/cron是GO语言中一个定时执行注册任务的package, 最近我在工程中使用到了它,由于它的实现优雅且简单(主要是简单),所以将源码过了一遍,记录和分享在此. 文档:htt ...
- Spring结合Quartz实现多任务定时调用(转载)
Quartz框架提供了丰富的任务调度支持,比如,在 何时执行何种任务,它是一个开源的由OpenSymphony维护的项目,开发者能够在Java EE,或单独的Java SE应用中使用它.无论是简单的任 ...
- Python一键转Jar包,Java调用Python新姿势!
粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 本文结构: 需求背景 进击的Python Java和Pytho ...
- Quartz结合SPRING多任务定时调用
定义两个被调度的类 public class QuartzJob { public void work() { System.out.println(Spring Quartz的任务调度1被调用!&q ...
- R语言︱H2o深度学习的一些R语言实践——H2o包
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言H2o包的几个应用案例 笔者寄语:受启发 ...
- Go语言基础之包
Go语言基础之包 在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的.本文介绍了Go语言中如何定义包.如何导出包的内容及如何导入其他包. Go语言的包(packag ...
- R语言:recommenderlab包的总结与应用案例
R语言:recommenderlab包的总结与应用案例 1. 推荐系统:recommenderlab包整体思路 recommenderlab包提供了一个可以用评分数据和0-1数据来发展和测试推荐算 ...
- 一、SQL系列之~使用SQL语言导出数据及实现定时导出数据任务
一般情况下,SQL数据库中带有导入与导出数据的直接按键操作,点击数据表所在的数据库--任务--导出/导入数据,根据导入/导出向导直接将数据导出即可. 但导出的数据格式多为Excel格式,如果需要导出的 ...
随机推荐
- jQuery的width()、innerWidth()、outerWidth()方法
width(): 不包括元素的外边距(margin).内边距(padding).边框(border)等部分的宽度. innerWidth(): 包括元素的内边距(padding),但不包括外边距(ma ...
- 字段值为NULL时的like注意事项
null like '%%'是有问题的 mysql中应该这样写COALESCE($ZU.mobile,'') like '%%' 或者 where IsNull([table].[column],'' ...
- 视图框架:Spring MVC 4.0(1)
目录 一.表单标签库 1.1.简介 1.2.常用属性 1.3.form标签与input标签 1.4.checkbox标签 1.5.radiobutton标签 1.6.password标签 1.7.se ...
- 自定义控件之TagGroup
转载请注明出处:http://blog.csdn.net/crazy1235/article/details/74907150 标签瀑布流布局! 实现方式有很多种. 继承LinearLayout 继承 ...
- Discuz代码研究-编码规范
Discuz中的编码规范很值得PHP开发人员借鉴.里面既介绍了编码时代码标记,注释,书写规则,命名原则等方面基础的内容,对代码的安全性,性能,兼容性,代码重用,数据库设计,数据库性能及优化作了阐述,这 ...
- (一)java概述
1.Java1995年斯坦福大学网络公司推出的一门高级语言.一种面向网络,完全的面向对象,完全可靠跨平台的语言. java:一种面向对象的高级语言 将现实生活中的事物以及 ...
- 51nod 1298 圆与三角形
给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交.相交输出"Yes",否则输出"No".(三角形的面积大于0). 输入 第1行:一个数 ...
- 圆方树总结 [uoj30]Tourists
圆方树总结 所谓圆方树就是把一张图变成一棵树. 怎么变啊qaq 这里盗一张图 简单来说就是给每一个点双新建一个点,然后连向这个点双中的每一个点.特殊的,把两个点互相连通的也视作一个点双. 我们把原来就 ...
- LeetCode Split Concatenated Strings
原题链接在这里:https://leetcode.com/problems/split-concatenated-strings/description/ 题目: Given a list of st ...
- 【spring源码学习】spring的IOC容器之自定义xml配置标签扩展namspaceHandler向IOC容器中注册bean
[spring以及第三方jar的案例]在spring中的aop相关配置的标签,线程池相关配置的标签,都是基于该种方式实现的.包括dubbo的配置标签都是基于该方式实现的.[一]原理 ===>sp ...