gcron

    使用方式:

    方法列表:godoc.org/github.com/johng-cn/gf/g/os/gcron

    1. func Add(spec string, f func(), name...string) error
    2. func Remove(name string)
    3. func Search(name string) *Entry
    4. func Entries() []Entry

    简要说明:

    1. Add方法用于添加定时任务,其中:
      • spec 参数使用CRON语法格式(具体说明见本章后续相关说明);
      • f 参数为需要执行的任务方法(方法地址);
      • 为非必需参数,用于给定时任务指定一个唯一的名称,注意如果已存在相同名称的任务,那么添加定时任务将会失败;
    2. Remove方法用于根据名称删除定时任务;
    3. Search方法用于根据名称进行定时任务搜索;

    CRON表达格式

    cron表达式表示一组时间,使用6个空格分隔的字段。

    1. Field name | Mandatory? | Allowed values | Allowed special characters
    2. ---------- | ---------- | -------------- | --------------------------
    3. Seconds | Yes | 0-59 | * / , -
    4. Minutes | Yes | 0-59 | * / , -
    5. Hours | Yes | 0-23 | * / , -
    6. Day | Yes | 1-31 | * / , - ?
    7. Month | Yes | 1-12 or JAN-DEC | * / , -
    8. Week | Yes | 0-6 or SUN-SAT | * / , - ?

    星号(*

    星号表示cron表达式将匹配所有的值。例如,在第五个字段(Month)中使用星号表示每个月。

    斜线()

    斜杠用于描述范围的增量。例如:第二个字段使用3-59/15表示每小时的第3分钟开始到第59分钟,每隔15分钟执行。

    逗号(,

    逗号用于分隔列表的项目。例如,第五个字段使用MON,WED,FRI将指每周一,周三和周五执行。

    连字符(-

    连字符用于定义范围。例如,第三个字段使用9-17表示每天上午9点至下午5点(含)。

    问号(?

    预定义的时间表

    您可以使用几个预定义的时间来代替cron表达式。

    间隔

    您还可以定义任务以固定的时间间隔执行,从添加时开始运行。这可以通过格式化cron规范来支持,如下所示:

      其中durationtime.ParseDuration接受的字符串
      ()。

      例如,@every 1h30m10s将表示添加任务之后每隔1小时30分10秒执行。