Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/carlescere/scheduler
Job scheduling made easy.
https://github.com/carlescere/scheduler
Last synced: about 1 month ago
JSON representation
Job scheduling made easy.
- Host: GitHub
- URL: https://github.com/carlescere/scheduler
- Owner: carlescere
- License: mit
- Created: 2015-02-03T17:10:23.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2022-06-23T14:43:15.000Z (almost 2 years ago)
- Last Synced: 2024-01-30T04:49:18.370Z (4 months ago)
- Language: Go
- Homepage:
- Size: 18.6 KB
- Stars: 437
- Watchers: 14
- Forks: 54
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Search and Analytic Databases)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Search and Analytic Databases)
- awesome-go-extra - scheduler - 02-03T17:10:23Z|2022-06-23T14:43:15Z| (Job Scheduler / Advanced Console UIs)
- awesome-go-zh - scheduler
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Search and Analytic Databases)
- awesome - carlescere/scheduler - Job scheduling made easy. (Go)
- awesome-go - scheduler - | - | - | (Job Scheduler / Advanced Console UIs)
- awesome-go-cn - scheduler
- fucking-awesome-go - :octocat: scheduler - Cronjobs scheduling made easy. :star: 95 :fork_and_knife: 7 (Utilities / Advanced Console UIs)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Advanced Console UIs)
- awesome-go-projects - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Standard CLI)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Search and Analytic Databases)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Utilities / Advanced Console UIs)
- awesome-go-with-framework - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Advanced Console UIs)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Search and Analytic Databases)
- awesome-go-cn - scheduler
- go-awesome-cn-star - scheduler
- awesome-go - scheduler - Cronjobs scheduling made easy. (Utilities / Advanced Console UIs)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Advanced Console UIs)
- awesome-go-cn - scheduler
- awesome-go. - scheduler - Cronjobs scheduling made easy. (Utilities / Advanced Console UIs)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Utilities / <span id="高级控制台用户界面-advanced-console-uis">高级控制台用户界面 Advanced Console UIs</span>)
- awesome-go-cn - scheduler - 从容的进行 Cronjobs 任务调度 (实用工具 / 高级控制台界面)
- awesome-go-with-stars - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Search and Analytic Databases)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Advanced Console UIs)
- repo-1316-awesome-go-cn - scheduler
- repo-1211-awesome-go-cn - scheduler
- awesome-Char - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Advanced Console UIs)
- awesome-reader - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Advanced Console UIs)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Advanced Console UIs)
- Go-awesome - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Search and Analytic Databases)
- awesome-go-cn - scheduler
- awesome-go - scheduler - Cronjobs scheduling made easy. (Utilities / Advanced Console UIs)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Utilities / Advanced Console UIs)
- awesome-go-handwritten - scheduler - Cronjobs scheduling made easy. (Utilities / HTTP Clients)
- awesome-go - scheduler - 從容的進行 Cronjobs 任務調度 (實用工具 / 高級控制台界面)
- awesome-go - scheduler - Job scheduling made easy. - ★ 249 (Utilities)
- awesome-go2 - scheduler - Cronjobs scheduling made easy. (Utilities / Advanced Console UIs)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Advanced Console UIs)
- awesome-go - scheduler - Cronjobs scheduling made easy. - :arrow_down:26 - :star:103 (Job Scheduler / Advanced Console UIs)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Search and Analytic Databases)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Utilities / Advanced Console UIs)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Advanced Console UIs)
- awesome-go-zh - scheduler
- awesome-go-cn - scheduler
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Search and Analytic Databases)
- awesome-go - scheduler - Cronjobs scheduling made easy. (Job Scheduler / Search and Analytic Databases)
- awesome-go-stars - scheduler(stars: 440) - Cronjobs scheduling made easy. (Job Scheduler / Search and Analytic Databases)
README
# scheduler
[![GoDoc](https://godoc.org/github.com/carlescere/scheduler?status.svg)](https://godoc.org/github.com/carlescere/scheduler)
[![Build Status](https://travis-ci.org/carlescere/scheduler.svg?branch=master)](https://travis-ci.org/carlescere/scheduler)
[![Coverage Status](https://coveralls.io/repos/carlescere/scheduler/badge.svg?branch=master)](https://coveralls.io/r/carlescere/scheduler?branch=master)Job scheduling made easy.
Scheduler allows you to schedule recurrent jobs with an easy-to-read syntax.
Inspired by the article **[Rethinking Cron](http://adam.heroku.com/past/2010/4/13/rethinking_cron/)** and the **[schedule](https://github.com/dbader/schedule)** python module.
## How to use?
```go
package mainimport (
"fmt"
"runtime"
"time""github.com/carlescere/scheduler"
)func main() {
job := func() {
t := time.Now()
fmt.Println("Time's up! @", t.UTC())
}
// Run every 2 seconds but not now.
scheduler.Every(2).Seconds().NotImmediately().Run(job)
// Run now and every X.
scheduler.Every(5).Minutes().Run(job)
scheduler.Every().Day().Run(job)
scheduler.Every().Monday().At("08:30").Run(job)
// Keep the program from not exiting.
runtime.Goexit()
}
```## How it works?
By specifying the chain of calls, a `Job` struct is instantiated and a goroutine is starts observing the `Job`.The goroutine will be on pause until:
* The next run scheduled is due. This will cause to execute the job.
* The `SkipWait` channel is activated. This will cause to execute the job.
* The `Quit` channel is activated. This will cause to finish the job.## Not immediate recurrent jobs
By default the behaviour of the recurrent jobs (Every(N) seconds, minutes, hours) is to start executing the job right away and then wait the required amount of time. By calling specifically `.NotImmediately()` you can override that behaviour and not execute it directly when the function `Run()` is called.```go
scheduler.Every(5).Minutes().NotImmediately().Run(job)
```## License
Distributed under MIT license. See `LICENSE` for more information.