go定时任务crontab

在linux里可以通过crontab -e或者vi /etc/crontab编辑定时任务,区别在于后者只有root用户可以,还可以指定shell环境,不建议修改,修改前建议备份,前者任何用户都可以使用,两者修改后都不用修改自动重启

linux里crontab实现的定时任务

# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed



go中可以通过协程来实现

# .------------------second (0 - 59)
# | .---------------- minute (0 - 59)
# | | .------------- hour (0 - 23)
# | | | .---------- day of month (1 - 31)
# | | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun
# | | | | | |
# * * * * * * user-name command to be executed
from xxx import crontab

func main() {
    //执行任务代码
    xxx   
    
    go func() {
        CronExec()
    }()
}
package crontab
import "github.com/robfig/cron"

func CronExec() {
    spec := "*/2 * * * * ?" //每2s执行一次
    spec := "0 5 10 * * ?" //每天早上10:05:00执行一次
    spec := "* * 10 * * ?" //每天10点开始的一个小时一直在执行
    spec := "* 1-59/10 * * * ?" //每天1分到59分每10分钟执行一次

    c := cron.New()
    id,err := c.AddFunc(spec, func()) {
        crontab()
    }
    if err != nil {
        fmt.Sprintf("crontab exec error: %v with id: %v", err, id)
    }
    c.Start()
    return c

func crontab() {
    fmt.Sprint("crontab exec...")
}

注意事项:
1、go里的crontab时间格式是从second开始
2、go里的crontab时间格式最后一个是?
————————————————
原文链接:https://blog.csdn.net/ambzheng/article/details/105881973

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值