Categorygithub.com/keepchen/schedule
modulepackage
0.0.1
Repository: https://github.com/keepchen/schedule.git
Documentation: pkg.go.dev

# README

Schedule

Go CodeQL Go Report Card
A distributed scheduled task tool written in Go. It was incubated and evolved from the go-sail framework.

Requirement

go version >= 1.19

Installation

go get -u github.com/keepchen/schedule

Features

  • Interval task
  • Once time task
  • Linux Crontab Style task
  • Cancelable
  • Race detection
  • Manual call

Examples

Interval

schedule.NewJob("say hello").EveryMinute()

Once time

schedule.NewJob("check in").RunAfter(time.Second)

Linux Crontab Style

schedule.NewJob("good morning").RunAt(schedule.EveryDayOfEightAMClock)

Cancelable

cancel := schedule.NewJob("say hello").EveryMinute()

time.AfterFunc(time.Minute*3, cancel)

Race detection

Note: You must set redis provider before use.

// set redis provider
schedule.SetRedisProviderStandalone(...)

schedule.NewJob("say hello").WithoutOverlapping().EveryMinute()

Manual call

schedule.Call("say hello", false)

schedule.MustCall("task not exist will be panic", true)

# Functions

Base64Encode base64编码.
Call 手动启动任务 jobName 任务名称 mandatory 如果为true,将不检测堆叠状态而直接执行 # Note 内部函数将被同步式的调用.
GetLocalIP 获取本地ip地址(单播地址).
Job 实例化任务 name 任务名称唯一标识 task 任务处理函数 # Note: 如果name重复,将会panic.
JobIsRunning 查看任务是否正在执行.
MustCall 手动启动任务 jobName 任务名称 mandatory 如果为true,将不检测堆叠状态而直接执行 # Note 1.若jobName在任务列表中不存在(如未注册或被取消),将panic 2.内部函数将被同步式的调用.
NewJob 实例化任务 name 任务名称唯一标识 task 任务处理函数 # Note: 如果name重复,将会panic.
ReleaseRedisProvider 释放redis连接.
SetRedisProviderCluster 设置redis连接配置(cluster).
SetRedisProviderFailOver 设置redis连接配置(fail-over).
SetRedisProviderStandalone 设置redis连接配置(standalone).

# Constants

每天早上八点.
每15分钟的开始第0秒.
每5分钟的开始第0秒.
每45分钟的开始第0秒.
每分钟的开始第0秒.
每10分钟的开始第0秒.
每30分钟的开始第0秒.
每20分钟的开始第0秒.
每月的第一天的0点0分.
每周的第一天(周一)的0点0分.
每个工作日(周一~周五)的上午9点0分到下午5点0分每半时一次.
每个工作日(周一~周五)的上午9点0分到下午5点0分每小时一次.
每月的最后一天的0点0分.
每周的最后一天(周天)的0点0分.
每个工作日(周一~周五)的上午10点0分.
每个周末(周六和周日)的上午10点0分.

# Interfaces

Scheduler 调度器.

# Type aliases

CancelFunc 取消函数 尚未启动或未在运行中的任务将被直接取消。 正在运行中的任务将等待其运行结束,之后便不再启动。 调用此方法后,任务将从任务列表中移除。.