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格式,如果需要导出的 ...
随机推荐
- FFmpeg再学习 -- 视音频基础知识
最近一直在看雷霄骅 FFmpeg 系列视频,然后将自己的理解总结一下. 参看:<基于 FFmpeg + SDL 的视频播放器的制作>课程的视频 一.视频播放器原理 自己理解: 比如一个 M ...
- Arcgis for Androd API开发系列教程(一)——地图显示与GPS定位
序:最近呢,工作鸭梨不是怎么大,对于自己爱折腾的想法又冒出了水面,开始自己的android开发的学习之旅.但是呢,本人是做GIS的,所以呢,就打算从这方面入手看看,是不是有什么比较好玩的玩意呢,这才导 ...
- [置顶]
【机器学习PAI实践三】雾霾成因分析
一.背景 如果要人们评选当今最受关注话题的top10榜单,雾霾一定能够入选.如今走在北京街头,随处可见带着厚厚口罩的人在埋头前行,雾霾天气不光影响了人们的出行和娱乐,对于人们的健康也有很大危害.本文通 ...
- Beego的controller怎么用嵌入实现继承问题
Go Lang是无继承层次的轻量级面向对象编程范式.Go Lang中的接口与实现之间完全是非侵入式的.这种接口实现方式很值得称赞.不但如此,在Go Lang中只有类型嵌入而没有类型继承.这规避了很多与 ...
- 作为一名Java开发工程师需要掌握的专业技能
在学习Java编程完之后,学员们面临的就是就业问题.作为一名Java开发工程师,企业在招聘的时候,也是有一定的标准的. 为了帮助大家更好的找到适合自己的工作,在这里分享了作为一名Java开发工程师需要 ...
- bzoj 1220 跳蚤
Written with StackEdit. Description \(Z\)城市居住着很多只跳蚤.在\(Z\)城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以 ...
- Net Core网络通信
Net Core网络通信 https://www.cnblogs.com/xxred/p/9859893.html 聊聊如何设计千万级吞吐量的.Net Core网络通信! 作者:大石头 时间:2018 ...
- Linux 服务器的那些性能参数指标
一个基于 Linux 操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤其当你的程序非正常工作的时候, ...
- junit基础学习
学习地址一:http://blog.csdn.net/andycpp/article/details/1327147/ 学习地址二:http://blog.csdn.net/zen99t/articl ...
- ADO+MFC数据库编程常用语句
设在OnInitDialog()函数中,已经完成了初始化COM,创建ADO连接等操作,即 // 初始化COM,创建ADO连接等操作 if (!AfxOleInit()) { AfxMessageBox ...