首页 > 其他分享 >Golang使用crontab

Golang使用crontab

时间:2023-11-09 14:35:04浏览次数:55  
标签:cron fmt time crontab Golang func 使用 New

要是记不住crontab格式,就去网上生成,在线crontab有很多。例如 https://www.pppet.net/

package main

import (
	"fmt"
	"github.com/robfig/cron/v3"
	"time"
)

/**
第一个*: second,范围(0 - 60)
第二个*: min,范围(0 - 59)
第三个*: hour,范围(0 - 23)
第四个*: day of month,范围(1 - 31)
第五个*: month,范围(1 - 12)
第六个*: day of week,范围(0 - 6) (0 to 6 are Sunday to Saturday)
*/
//每隔5秒执行一次:*/5 * * * * ?
//每隔1分钟执行一次:0 */1 * * * ?
//每天23点执行一次:0 0 23 * * ?
//每天凌晨1点执行一次:0 0 1 * * ?
//每月1号凌晨1点执行一次:0 0 1 1 * ?
//每周一和周三晚上22:30: 00 30 22 * * 1,3
//在线crontab https://www.pppet.net/

func main() {
	// 新建一个定时任务对象,根据cron表达式进行时间调度,cron可以精确到秒,大部分表达式格式也是从秒开始
	// 精确到秒
	cronTab := cron.New(cron.WithSeconds())
	// 定义定时器调用的任务函数
	task := func() {
		fmt.Println("hello world", time.Now())
	}
	// 定时任务,cron表达式,每五秒一次
	spec := "*/5 * * * * ?"
	// 添加定时任务
	cronTab.AddFunc(spec, task)
	// 启动定时器
	cronTab.Start()
	// 阻塞主线程停止
	select {}
}

func main2() {
	//直接配置时区
	nyc, _ := time.LoadLocation("Asia/Shanghai")
	// cron.New(cron.WithLocation(time.UTC))
	c := cron.New(cron.WithLocation(nyc), cron.WithSeconds())
	c.AddFunc("*/5 * * * * ?", func() {
		fmt.Println("5/s New York")
	})
	// 参数里面配置时区
	c.AddFunc("CRON_TZ=Asia/Tokyo */5 * * * * ?", func() {
		fmt.Println("5/s tokyo")
	})
	c.Start()
	select {}
}

标签:cron,fmt,time,crontab,Golang,func,使用,New
From: https://www.cnblogs.com/qcy-blog/p/17819659.html

相关文章

  • 使用SSH远程连接Ubuntu服务器系统
    【前言】愿,所有相遇,都恰逢其时!愿,此刻心头,正满怀欣喜!---你好,朋友,欢迎你! ---对此篇博客中有任何问题和不懂的可以咨询QQ:2759590905实现目的:安装完Ubuntu系统后只能在Ubuntu命令行中输入命令,不能将外面的代码复制进Ubuntu命令行里面,所有本教程......
  • 开发时推荐使用Map map = new HashMap()
    Mapmap=newHashMap();Map是一个接口,HashMap是具体的实现类。由于接口就是多个类的共有规范(里面的抽象方法),是一种引用数据类型,一个抽象的概念,不能被实例化,因此接口需要由具体的类来实现。这条代码指明:由HashMap类来实现接口Map中描述的方法。HashMapmap=newHashMap(......
  • 如何安装 StoneDB 2.0 企业版? | StoneDB 使用教程 #2
    通过二进制TAR包安装(CentOS7.X)下载安装包stonedb-ee-8.0-v2.1.0.el7.x86_64.tar.gz下载地址:https://www.stoneatom.com/download解压安装包点击查看代码tar-zxvfstonedb-ee-8.0-v2.1.0.el7.x86_64.tar.gz-C/opt依赖检查点击查看代码ldd-r/opt/stonedb_v2/......
  • 文件存储引擎模块封装和使用分享
    背景需求在项目开发过程中,经常会使用到文件存储相关的功能,如:存储发票文件提供发票下载地址……调研诸如此类的功能就需要使用到本地存储或云服务商提供的存储功能。当然,这对于开发高手的zone来说都是小意思,上网一查,对象存储哪家强?​​第一位赫然显示了百家号创作者......
  • 文件存储引擎模块封装和使用分享
    背景需求在项目开发过程中,经常会使用到文件存储相关的功能,如:存储发票文件提供发票下载地址……调研诸如此类的功能就需要使用到本地存储或云服务商提供的存储功能。当然,这对于开发高手的zone来说都是小意思,上网一查,对象存储哪家强?​​第一位赫然显示了百家号创作者......
  • MathJax渲染Latex语法基本使用
    用Markdown写博客的时候,有时需要用到Latex来写数学公式,通过使用MathJax,我们可以让Markdown解析Latex数学表达式,同时Next主题也支持MathJax,所以了解一下Latex语法是十分有必要的。基础语法公式标记MathJax支持行内公式(inline)和陈列公式(displayed)。inline表示公式嵌入到文本段中,d......
  • apktool使用笔记-与系统不兼容
    apk重新打包后,新的android版本手机报"与系统不兼容"尝试更新apktool.jar,2.6更新到2.9,还是一样的情况网上搜索下相关的问题,可能原因是签名方式,以及对齐问题下载android-sdk,获取相关工具,这种功能很少,只能从sdk获取从sdk,jre复制相关文件过来,其中一个bat......
  • xcode 个人开发者账号免费使用
    先申请一个appIdxcode选择团队开发者账号真机签名......
  • Python中使用sqlalchemy操作数据库遇到密码包含@的处理方法
    欺骗性的oracle12514错误,这就有问题了,努力方向就不对了。。。密码包含@的处理方法使用sqlalchemy操作数据库的时候,遇到密码中包含@的时候会报错。因为它是通过@来链接IP地址的,遇到密码里有@就跟语法里的@混乱分不清了。编辑器就会报错。比如下面这个例子:用户名:XXXXX密码:1......
  • plop工具使用:自动生成模板代码
    (一)大概的步骤:1.npm安装2.创建plopfile.js配置文件(配置与步骤3中文件的对应关系)3.创建相关模板文件4.package.json中配置运行命令(二)具体操作如下:1.安装npminstall--save-devplop2.根目录添加plopfile.js文件functionvalidate(v){if(/[[\u4E00-\u9FA5]|[\uF......